Koordinaten umrechnen

LukeS

Erfahrenes Mitglied
Hallo zusammen

Ich habe ein kleines Problem:
Auf einem X-Y-Editor möchte ich auf der Y-Achse das Intervall [1,-1] darstellen und auf der X-Achse das Intervall [0, 2*pi].
Nun muss ich zwischen den angezeigten Koordinaten und den relativen Koordinaten des Fensters (0, 0, width, height) umrechnen.

Ich habe für jede Achse zwei Funktionen (je eine um von einem ins andere Koordinatensystem umzurechnen). Doch irgendwie stimmen meine Berechnungen nicht.

Kann mir jemand beim Umrechnen der Koordinatensysteme helfen?

Danke!
Gruss LukeS

Übrigens ich verwende Juce und VCE.
 
Ich hab den Fehler gefunden. Meine Berechnungen waren richtig. Nur war die Grösse des Fensters, zum Zeitpunkt als ich die Berechnungen durchgeführt habe, noch nicht festgelegt. Das heisst es war 0 breit und 0 hoch.

Falls es jemanden interessiert, da meine Umrechnungs-Funktionen:
Code:
float WaveformComponent::xCoordinateComponentToShown(int xComponent)
{
	float xShown = xComponent / getWidth() * 2 * pi;
	return xShown;
}

float WaveformComponent::yCoordinateComponentToShown(int yComponent)
{
	float yShown = -1 * ((yComponent * 2 / getHeight()) - 1);
	return yShown;
}

int WaveformComponent::xCoordinateShownToComponent(float xShown)
{
	int xComponent = int((xShown / (2 * pi)) * getWidth());
	return xComponent;
}

int WaveformComponent::yCoordinateShownToComponent(float yShown)
{
	int yComponent = int(getHeight() * ((1 + yShown) / 2)); 
	return yComponent;
	activeCursor = c;
}

Gruss LukeS
 
Zuletzt bearbeitet:
Ich habe gerade einen Fehler in meinem code entdeckt. Wer sich für den funktionierenden Code interessiert, soll sich bei mir melden.

Gruss LukeS
 
Zurück