Delphi-PRAXiS
Seite 1 von 2  1 2      

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)

Jackie1983 14. Mär 2011 13:52

Halbkreis zwischen zwei Punkten zeichnen.
 
Liste der Anhänge anzeigen (Anzahl: 1)
Servus,

habe schon bei google und hier gesucht. Habe auch schon genug funktionen gefunden um einen halbkreis zu zeichnen.

Z.b. hier von einer Seite
Grafik

Kein Problem. Nur mein Problem ist das ich die Koordinaten außen habe, links oben und rechts unten. Zwischen den beiden soll ein halbkreis gezeichnet werden.

Anbei eine Grafik wie weit ich bin.
Das grüne ist das Quadrat mit den Position p1 und p2. Das rote ist ein Quadrat mit p1 + 40 und p2 + 40.
Wie kann ich aber die 40 berechnen?
Kann mir da einer weiterhelfen?

gruß Thomas

Bummi 14. Mär 2011 14:04

AW: Halbkreis zwischen zwei Punkten zeichnen.
 
IMHO ist alles was Du brauchst der Mittelpunkt, von dort über StartWinkel bis (Startwinkel + 180) mit DegToRad für Sinus und Coisnus die Haltepunkte berechnen (Radius ist Dir ja bekannt) und verbinden.

s.h.a.r.k 14. Mär 2011 14:06

AW: Halbkreis zwischen zwei Punkten zeichnen.
 
Das sind doch keine Quadrate, sondern Rechtecke?!

Jackie1983 14. Mär 2011 14:15

AW: Halbkreis zwischen zwei Punkten zeichnen.
 
Zitat:

Zitat von s.h.a.r.k (Beitrag 1088365)
Das sind doch keine Quadrate, sondern Rechtecke?!

Ja blöd beschrieben solange sie quadratisch gezeichnet werden geht es, das meine ich....

Zitat:

Zitat von Bummi (Beitrag 1088364)
IMHO ist alles was Du brauchst der Mittelpunkt, von dort über StartWinkel bis (Startwinkel + 180) mit DegToRad für Sinus und Coisnus die Haltepunkte berechnen (Radius ist Dir ja bekannt) und verbinden.

Mittelpunkt ist kein Problem. Aber wie berechne ich den Startwinkel. Sorry steh gerade voll auf dem schlauch, hätte in der Schule besser aufpassen müssen :wink:

Und mit der Methode Arc muss ich ja 4 Punkte übergeben.

Bummi 14. Mär 2011 14:39

AW: Halbkreis zwischen zwei Punkten zeichnen.
 
suchst Du sowas?
Delphi-Quellcode:
var
  px1,py1,px2,py2, ipx1, ipy1, ipx2,ipy2:Integer;
begin
  px1 := 100;
  py1 := 100;
  px2 := 300;
  py2 := 300;
  ipx1 := px1 + 40;
  ipy1 := py1 + 40;
  ipx2 := px2 - 40;
  ipy2 := py2 - 40;

  Canvas.Arc(px1,py1,px2,py2, ipx2,ipy2, ipx1, ipy1);
end;

Jackie1983 14. Mär 2011 14:41

AW: Halbkreis zwischen zwei Punkten zeichnen.
 
Genau so in der Art mache ich es Zur zeit.
Nur die 40 kenne ich ja nicht die muss ich ja berechnen nur weiß ich nicht wie.
//Edit ich muss also immer ein quadrat um die beiden punkte zeichnen und diese per halbkreis verbinden.

jokerfacehro 14. Mär 2011 15:09

AW: Halbkreis zwischen zwei Punkten zeichnen.
 
dreh mal das innere grüne "quadrat" gedanklich um 45°.
dann solltest du es sehen ^^

die länge der diagonalen des grünen quadrats entspricht der seitenlänge des roten quadrats

Edit: wenn das wirklich quadrate sein sollen ^^

mleyen 14. Mär 2011 15:24

AW: Halbkreis zwischen zwei Punkten zeichnen.
 
Ist jetzt die Entfernung vom äußerem zum innerem Quadrat gesucht, wobei die Seitenlänge vom äußerem Quadrat gegeben ist?
Dann:
Delphi-Quellcode:
function getQdInnerCircQdDiff(const QuadSideLenDiv2: Extended): Extended;
begin
  Result := QuadSideLenDiv2 - Sin(Pi/180*45)*QuadSideLenDiv2;
end;

Jackie1983 14. Mär 2011 15:30

AW: Halbkreis zwischen zwei Punkten zeichnen.
 
Ne das grüne habe ich. Also die Entfernung vom grünen zum roten.
45°... ja ok stimmt, jetzt muss ich das nur irgend wie in eine formel bekommen.

Jumpy 14. Mär 2011 15:39

AW: Halbkreis zwischen zwei Punkten zeichnen.
 
Du hast doch Mittelpunkt und Radius des Kreises, oder was versteh ich jetzt nicht? Daraus leitet sich doch alles weitere ab...
Vllt. mal den Kreis ganz zeichnen, dann sieht mans doch.


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

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