Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Halbkreis zwischen zwei Punkten zeichnen. (https://www.delphipraxis.net/159097-halbkreis-zwischen-zwei-punkten-zeichnen.html)

mleyen 14. Mär 2011 15:46

AW: Halbkreis zwischen zwei Punkten zeichnen.
 
Dann halt: (Wenn ich mich auf die schnelle nicht vertue)
Delphi-Quellcode:
function getQdOuterCircQdDiff(const InnerQuadSideLen: Extended): Extended;
begin
  Result := (Sqrt(2*Power(InnerQuadSideLen,2)) - InnerQuadSideLen)/2;
end;

Jumpy 14. Mär 2011 15:52

AW: Halbkreis zwischen zwei Punkten zeichnen.
 
Zitat:

Zitat von mleyen (Beitrag 1088394)
Dann halt: (Wenn ich mich auf die schnelle nicht vertue)
Delphi-Quellcode:
function getQdOuterCircQdDiff(const InnerQuadSideLen: Extended): Extended;
begin
  Result := (Sqrt(2*Power(InnerQuadSideLen,2)) - InnerQuadSideLen)/2;
end;

<=> Result := (Sqrt(2)*InnerQuadSideLen - InnerQuadSideLen)/2;
<=> Result := (Sqrt(2)-1)*InnerQuadSideLen/2;

Jackie1983 14. Mär 2011 16:11

AW: Halbkreis zwischen zwei Punkten zeichnen.
 
Sorry aber ich verstehe nur Bahnhof, boar eh zum kotzen wenn man das nicht mehr hinbekommt :(.

Soweit bin ich jetzt
l := Sqrt( Sqr(x2-x1) + Sqr(y2-y1) );

Jetzt habe ich schonmal die Hypotenuse :wink:
Wenn ich jetzt per Rectangle(0,0, l, l) bekomme ich ein Quadrat wo ich meinen halbkreis rein zeichnen kann, oder :stupid:.

Aphton 14. Mär 2011 16:59

AW: Halbkreis zwischen zwei Punkten zeichnen.
 
Probier mal das hier:
Code:
AbstandDifferenz = SQRT(2*SeitenlängeDesQuadrats^2)/2 - SeitenlängeDesQuadrats

Bummi 14. Mär 2011 22:40

AW: Halbkreis zwischen zwei Punkten zeichnen.
 
ich bin sicher, dass alles ganz trivial ist...
Mir ist nicht ganz klar
1.) was hast Du
2.) was willst Du..

Jackie1983 15. Mär 2011 08:00

AW: Halbkreis zwischen zwei Punkten zeichnen.
 
Also ich habe einmal P1 x,y und P2 x,y. Das sind die beiden Koordinaten die ich mit einem Halbkreis verbinden möchte.

Den Halbkreis möchte ich mit der Methode Arc zeichnen.
Wenn ich jetzt mit P1 und P2 ein Rechteck zeiche und dann mit Arc den Kreis. Ist der Kreis ja "zwischen" P1 und P2. Aber der Anfang vom Halbkreis muss P1 sein und das ende P2 im 180 Grad Winkel.

Was ich habe sind P1, P2 und die Hypotenuse.

Nochmal danke für die Hilfe.

Aphton 15. Mär 2011 08:22

AW: Halbkreis zwischen zwei Punkten zeichnen.
 
Hast du dir meine Lösung genauer angeschaut?

Jackie1983 15. Mär 2011 08:30

AW: Halbkreis zwischen zwei Punkten zeichnen.
 
Ja es hat aber nicht funktioniert, oder ich habe es falsch umgesetzt.
Aber ich habe es geschafft :-D . Geht bestimmt auch einfacher :wink:.

Delphi-Quellcode:
x1 := wert;
y1 := wert;
x2 := wert;
y2 := wert;

mx := (x2 + x1) div 2;
my := (y2 + y1) div 2;

laenge := Sqrt( Sqr(x2-x1) + Sqr(y2-y1) );

x1 := Round(mx-(laenge / 2));
y1 := ....

Arc(x2,y2, x1,....)
Danke für die Hilfe!

Bummi 15. Mär 2011 10:19

AW: Halbkreis zwischen zwei Punkten zeichnen.
 
Delphi-Quellcode:
var
  px1,py1,px2,py2, ipx1, ipy1, ipx2,ipy2:Integer;
  f:Double;
begin
  px1 := 100;
  py1 := 100;
  px2 := 500;
  py2 := 500;
  ipx1 := px1 ;
  ipy1 := py1 ;
  ipx2 := px2 ;
  ipy2 := py2 ;
  f := (1 - sin(DegToRad(45))) * (px2-px1) / SQRT(2);
  Canvas.Rectangle(px1,py1,px2,py2);
  Canvas.Arc(Round(px1 - f),Round(py1 - f),Round(px2 +  f),Round(py2 + f), ipx2,ipy2, ipx1, ipy1);
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:03 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz