Hallo alle Miteinader,
ich habe folgendes Problem. Ich will meine User-Koordinaten im Real-Format in meinem Prog anzeigen lassen. Dazu nutze ich Momemt eine Komponente. Wenn ich jedoch dann die Koordinaten Zeichnen lasse und
und dann mit der Maus die Punkte ansteuere werden diese nicht korrekt angezeigt.
Wenn ich jetzt zum Bsp. ein Rechteck zeichne mit denn Koordinaten
P1(-156.5,-150), P2(-156.5,142.97), P3(569.5,142.97), P4(569.5,-150)
und dann die Maus genau auf die Eckpunkte des Rechtecks setze hab ich eine Abweichung im 1:1 Bild von 0.35 bis ca 0.95 . Erst so bei einem Zoom von 100 : 1 wir es geanau...
Hat jemand vielleicht eine Idee wie das genauer geht??
Hier mal die Functionen
Delphi-Quellcode:
function TCadBox.real_to_screen(P:Point2D) : TPoint;//; OCS:pMatrix
begin
result.x := round(( P.x - xmin )*xscale);
result.y := round(( ymax - P.y )*yscale);
end;
function TCadBox.screen_to_real(P1:TPoint) : Point2D;
begin
result.x := P1.x/xscale + xmin;
result.y := ymax -P1.y/yscale;
end;
Und die Anzeige für den User in einem Label sieht dann so aus
...
Delphi-Quellcode:
ul := screen_to_real(Point(x,y));
s1 := FormatFloat('0.00', round(ul.x /Raster_Wert) * Raster_Wert);
s2 := FormatFloat('0.00', round(ul.y /Raster_Wert) * Raster_Wert);
Label1.Caption := 'X= '+s1+' Y= '+s2;
...
Grüße burn
[edit=Daniel B]Delphi-Tags gesezt. MfG Daniel B.[/edit]