Entwickler-Ecke
Multimedia / Grafik - Koordinatenproblem - Linie zeichnen
Roux - Sa 28.06.08 15:22
Titel: Koordinatenproblem - Linie zeichnen
Hi!
Ich habe ein TImage Objekt mit einem Bild und dazu 2 Proceduren (MouseMove vom TImage und OnClick vom TImage):
(Hinweis: X2 und Y2 sind 2 globale Variablen vom Typ Integer)
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure TForm1.WKClick(Sender: TObject); begin WK.Canvas.MoveTo(0,0); WK.Canvas.LineTo(X2,Y2); end;
procedure TForm1.WKMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin X2 := X; Y2 := Y; end; |
Wenn ich auf die Karte Klicke, sollte er doch vom 0;0 Punkt aus eine Linie ziehen zu den Punkt den ich angeklickt habe, oder nicht? Er machts jedenfalls nicht, die Linie ist immer zu kurz.
Roux
Jakob_Ullmann - Sa 28.06.08 15:35
Kommt drauf an. Wenn das Bild ungestretcht vorliegt dann ja, aber ich vermute, dass du dein Bild kleiner gestretcht hast. Denn bei Canvas geht es um Bildpunkte, bei Mäusen dagegen um Pixel. :wink:
Delphi-Quelltext
1: 2: 3: 4:
| factorX := WK.Picture.Width / WK.Width; factorY := WK.Picture.Height / WK.Heighth; WK.Canvas.MoveTo(0, 0); WK.Canvas.LineTo(round(X2 * factorX), round(Y2 * factorY)); |
Roux - Sa 28.06.08 15:40
Achso, das sind Bildpunkte, Danke :)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!