AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Lineare Funktionen

Ein Thema von galoru · begonnen am 7. Mär 2012 · letzter Beitrag vom 7. Mär 2012
Antwort Antwort
Seite 1 von 2  1 2   
galoru

Registriert seit: 12. Okt 2011
27 Beiträge
 
#1

AW: Lineare Funktionen

  Alt 7. Mär 2012, 17:40
Ok danke für den Tipp
Hier mein Problem, ach ja bitte nicht bei den Bezeichnungen wundern ^^
http://s7.directupload.net/file/d/2822/swkx3m7u_jpg.htm
  Mit Zitat antworten Zitat
Jens01
Online

Registriert seit: 14. Apr 2009
674 Beiträge
 
#2

AW: Lineare Funktionen

  Alt 7. Mär 2012, 17:48
Du kannst nicht einfach die Werte einfach von der Pixelhöhe der Balken abziehen. Du musst sie in Relation setzen.

so ähnlich:
BalkenhöhePixel = Wert * Pixel_Y-Achse/MaxWert_Y-Achse
(bitte Formel ggf überprüfen)
Achtung: Bin kein Informatiker sondern komme vom Bau.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.666 Beiträge
 
Delphi 12 Athens
 
#3

AW: Lineare Funktionen

  Alt 7. Mär 2012, 17:51
Das sollte sich doch mit einfacher Prozentrechnung hinbekommen lassen. Die 130 entsprechen dann 100 %, die 23 wäre demnach 17,7 % usw. Nun nimmst Du die Anzahl der Pixel von der unteren zur oberen Kante, das entspricht dann wiederum 100 %. Wenn Du nun davon 17,7 % errechnest, weißt Du, wie hoch der Balken werden muss. Bei dem ganzen aber bitte mit Gleitkommazahlen rechnen und erst bei der Ausgabe (= Zeichnen) runden, sonst geht das wahrscheinlich in die Hose.

[edit] BTW: Man kann auch an seinen Beitrag Grafiken anhängen, dann bleiben sie uns erhalten. [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
galoru

Registriert seit: 12. Okt 2011
27 Beiträge
 
#4

AW: Lineare Funktionen

  Alt 7. Mär 2012, 17:57
Ja und wenn ich statt 23, 376 habe? Das sind ja keine 17,7% mehr davon?
Also so :fillrect(rect(60,330,100,round ((a*100/(a*100/e))))); ?
Ich checks grad gar nicht ,sorry.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.666 Beiträge
 
Delphi 12 Athens
 
#5

AW: Lineare Funktionen

  Alt 7. Mär 2012, 18:03
Dann ändert sich doch auch die Anzahl, oder nicht?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
galoru

Registriert seit: 12. Okt 2011
27 Beiträge
 
#6

AW: Lineare Funktionen

  Alt 7. Mär 2012, 18:06
Ja die Anzahl ändert sich ja , trotzdem versteh ich nicht genau was du mit de Pixeln von der unteren bis zur oberen Kante meinst.
Die Pixel von dem Balken?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.666 Beiträge
 
Delphi 12 Athens
 
#7

AW: Lineare Funktionen

  Alt 7. Mär 2012, 18:07
Ist das Diagramm nicht immer gleich hoch?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
galoru

Registriert seit: 12. Okt 2011
27 Beiträge
 
#8

AW: Lineare Funktionen

  Alt 7. Mär 2012, 18:13
Da Diagramm an sich ist immer gleich hoch, nur die Verteilung der Stimmen ändert sich ja im Verhältnis zur Gesamtanzahl.
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#9

AW: Lineare Funktionen

  Alt 7. Mär 2012, 18:22
Hier ist mal etwas Beispielcode zur Anregung der grauen Zellen.
Du kannst daraus lernen:
* Kommentare sind Nützlich
* Konstanten verbessern die Lesbarkeit
* mit Unter-Funktionen kommt man Schritt für Schritt zum Ziel
Delphi-Quellcode:
// Rechteck mit bestimmte Höhe erzeugen
function ErzeugeBalken(prozent:double):TRect;
const
  BALKENBREITE = 30;
  BALKENHOEHE = 150;
begin
   Result := Rect(0,0, BALKENBREITE, trunc(BALKENHOEHE * prozent / 100.0));
end;

procedure TForm1.Button1Click(Sender: TObject);
const BALKENABSTAND = 65;
var
   balken : TRect;
   x,y : Integer;
begin
   balken := ErzeugeBalken(40.0{%});
   OffsetRect(balken, 35, 45); // Rechteck verschieben
   Canvas.FillRect(balken);

   balken := ErzeugeBalken(65.0{%});
   OffsetRect(balken, 35 + BALKENABSTAND, 45);
   Canvas.FillRect(balken);
end;
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.666 Beiträge
 
Delphi 12 Athens
 
#10

AW: Lineare Funktionen

  Alt 7. Mär 2012, 18:31
Da hätte ich auch noch was:
Delphi-Quellcode:
function PixelFromPart(Total, //Gesamtanzahl
 Part, //Einzelergebnis
 Pixelheight //Höhe des Diagramms in Pixel
 : integer): integer;
var
  Percent: double;
begin
  Result := 0;
  if Total <> 0 then
    begin
      //Prozentualen Anteil errechnen
      Percent := Part / (Total / 100);
      //Und auf die Diagrammhöhe übertragen
      Result := trunc(Pixelheight / 100.0 * Percent);
    end;
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz