HI
Heieiei..hab ich jetzt lange gehabt um mein Problem zu lösen. Ich hab ein kleines Programm geschrieben, mit welchem man Graphen zeichnen kann. Allerdings war mein Problem, dass es auf der xAchse jeweils gleich einen ganzen Einheitensprung gemacht hat und nicht nur 1 xPixel...also da merkte ich shcon, irgendwo habe ich nen Fehler...
Ich habs auf alle Fälle so gemacht:
ich hab eine Breite für das Fenster wo der Graph gezeichnet werden soll - width
ich hab eine Angabe zu der Anzahl Einheiten (von links nach rechts) - units
am anfang hatte iuch folgende zwei funktionen (die für den FEhler verantwortlich waren):
Rein rechnerisch stimmen diese beiden Funktionen
a) berechnet den y Wert (abhängig von der Anzahl units) auf dem Screen
b) berrechnet genau umgekehrt von den Anzahl Pixeln auf dem Screen den Einheitenwert
nun, dies ging nicht...wieso?! ich habe nacher in beiden width/units durch die float Variable scale ersetzt und da gings...wieso?!
so wie ich mir das bisher vorgestellt habe, also das rechnen in java: Wenn ich zwei integer, z.B. 3 und 2, dividiere gibt es 1.5 und je nachdem was der Rückgabewert (oder die Variable die das Ergebnis kriegt) für ein Typ ist wird das 0.5 abgeschnipselt oder nicht.
Aber offenbar ist das nicht so oder? denn sonst hätte meine Funktion ja funktioniert?!
Heieiei..hab ich jetzt lange gehabt um mein Problem zu lösen. Ich hab ein kleines Programm geschrieben, mit welchem man Graphen zeichnen kann. Allerdings war mein Problem, dass es auf der xAchse jeweils gleich einen ganzen Einheitensprung gemacht hat und nicht nur 1 xPixel...also da merkte ich shcon, irgendwo habe ich nen Fehler...
Ich habs auf alle Fälle so gemacht:
ich hab eine Breite für das Fenster wo der Graph gezeichnet werden soll - width
ich hab eine Angabe zu der Anzahl Einheiten (von links nach rechts) - units
am anfang hatte iuch folgende zwei funktionen (die für den FEhler verantwortlich waren):
Code:
public int scaleY(float y) {
return Math.round(yOrigin - (y * (width / units)));
}
public float scaleX (int x){
return (x - xOrigin) / (width / units);
}
Rein rechnerisch stimmen diese beiden Funktionen
a) berechnet den y Wert (abhängig von der Anzahl units) auf dem Screen
b) berrechnet genau umgekehrt von den Anzahl Pixeln auf dem Screen den Einheitenwert
nun, dies ging nicht...wieso?! ich habe nacher in beiden width/units durch die float Variable scale ersetzt und da gings...wieso?!
so wie ich mir das bisher vorgestellt habe, also das rechnen in java: Wenn ich zwei integer, z.B. 3 und 2, dividiere gibt es 1.5 und je nachdem was der Rückgabewert (oder die Variable die das Ergebnis kriegt) für ein Typ ist wird das 0.5 abgeschnipselt oder nicht.
Aber offenbar ist das nicht so oder? denn sonst hätte meine Funktion ja funktioniert?!