AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Brauche Denkanstoß für Zeichnung mit Gauß Krügerkoordinaten
Thema durchsuchen
Ansicht
Themen-Optionen

Brauche Denkanstoß für Zeichnung mit Gauß Krügerkoordinaten

Ein Thema von verkouter · begonnen am 27. Feb 2018 · letzter Beitrag vom 2. Apr 2018
Antwort Antwort
Seite 2 von 2     12   
verkouter

Registriert seit: 29. Dez 2004
64 Beiträge
 
Delphi 2010 Architect
 
#11

AW: Brauche Denkanstoß für Zeichnung mit Gauß Krügerkoordinaten

  Alt 30. Mär 2018, 16:32
Entschuldigung, das ich mich solange nicht gemeldet habe. Hatte im Moment viel zu tun.

der Fehler lag im ABS vor xn und yn.
Code:
procedure TForm1.ToolButton2Click(Sender: TObject);
var winkel,x,y,xn,yn,xc,yc,u,d :real;
Img : TImage;
i:integer;
begin
winkel:=strtofloat(drehwinkel.Text);
xc:=max1-min1;
yc:=max2-min2;
label1.caption:=floattostr(xc)+'  '+floattostr(yc);
for i := stringgrid1.RowCount-1 downto 1 do
begin
x:=strtofloat(stringgrid1.Cells[1, i]);
y:=strtofloat(stringgrid1.Cells[2, i]);
u:= Winkel * Pi/180 + arctan2(Y-Yc,X-Xc);
d:= sqrt((X-Xc)*(X-Xc) + (Y-Yc)*(Y-Yc));
xn:=((Xc+d*cos(u)));
yn:=((Yc+d*sin(u)));
stringgrid1.Cells[3,i]:=floattostr(xn);
stringgrid1.Cells[4,i]:=floattostr(yn);
end;
zeichnen;
end;
mit diesem Code funktioniert jetzt das Drehen.
Jetzt ist immer noch das Problem, das die Zeichnung teilweise außerhalb des Images liegt.
Schlecht wäre es auch nicht, wenn er die Imagegröße automatisch anpassen würde.
  Mit Zitat antworten Zitat
brechi

Registriert seit: 30. Jan 2004
823 Beiträge
 
#12

AW: Brauche Denkanstoß für Zeichnung mit Gauß Krügerkoordinaten

  Alt 2. Apr 2018, 15:27
Ich blick zwar gerade nicht mehr komplett durch, aber:

Delphi-Quellcode:
procedure TForm1.Zeichnen;
var x1,x2,y1,y2,a,i:integer;
begin
image1.Picture.assign(nil);
SortStringGrid(StringGrid1, 3);
min1:=strtofloat(stringgrid1.Cells[3, 1]);
max1:=strtofloat(stringgrid1.Cells[3, stringgrid1.RowCount-1]);
SortStringGrid(StringGrid1, 2);
min2:=strtofloat(stringgrid1.Cells[4, 1]);
max2:=strtofloat(stringgrid1.Cells[4, stringgrid1.RowCount-1]);

label1.Caption:=inttostr(round((max2-min2+5)*20))+' '+inttostr(round((max1-min1+5)*20));

image1.Height:=abs(round((max2-min2)*20) + 40); // geaendert!
image1.Width:=abs(round((max1-min1)*20)) + 40); // geaendert!

// hier auf "+ 40" gaendert, da unten y2/x2 .. bei der 2. Koordinate + 40 addiert wird
// ggf. noch wegen der Textausgabe vergrößern mit z.B. Canvas.GetTextHeight bzw. Canvas.GetTextWidth und die zusätzlichen "+ 25"

for a := stringgrid1.RowCount-1 downto 1 do
begin
x1:=round((strtofloat(stringgrid1.Cells[3, a])-min1)*20);
y1:=round((max2-strtofloat(stringgrid1.Cells[4, a]))*20);
x2:=x1+40;
y2:=y1+40;
image1.canvas.brush.Style:=(bsclear);
image1.canvas.pen.color:=clblack;
image1.canvas.Ellipse(x1,y1,x2,y2);
image1.Canvas.TextOut(x1+25,y1+25,stringgrid1.Cells[0, a]);
end;
end;
  Mit Zitat antworten Zitat
verkouter

Registriert seit: 29. Dez 2004
64 Beiträge
 
Delphi 2010 Architect
 
#13

AW: Brauche Denkanstoß für Zeichnung mit Gauß Krügerkoordinaten

  Alt 2. Apr 2018, 18:23
Hallo brechi,
die 20 ist der Vergrößerungsfaktor, die(+40) ist die Größe der Elippse ,das entspricht dann in der Zeichnung 2m.
Ich habe mal die neuste Version hochgeladen.Aber ich blicke auch nicht mehr durch.Die Anpassung der Bildgröße habe ich erstmal rausgenommen.
Warscheinlich ist das alles so auf diese Koordinate angepasst, daß es bei neuen Koordinaten wieder garnicht passt.
Angehängte Dateien
Dateityp: zip Gauß Krüger.zip (780,4 KB, 2x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 20:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz