Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Linie nicht durch Kreis (https://www.delphipraxis.net/46960-linie-nicht-durch-kreis.html)

Logic 3. Jun 2005 18:59


Linie nicht durch Kreis
 
Hallo,

ich muss von einem Kreis zu einem anderen Kreis einen Pfeil ziehen... Die Kreispositionen sind variabel. Die Mittelpunkte werden einfach per Top+0,5*breite festgelegt... Ich möchte nur jetzt, dass der Pfeil nicht durch die Shapes geh,t sondern so nen paar Pixel vorher aufhört... d.h. ich muss die Koordinaten anpassen. Hat jemand eine Idee wie ich das mache?

http://www.logic-online.biz/cache/logic/pfeile.gif

Zacherl 3. Jun 2005 19:03

Re: Linie nicht durch Kreis
 
du musst als Endpunkt und Startpunkt der Linie den Radius des jeweiligen Kreises abziehen.

Florian

Logic 3. Jun 2005 19:15

Re: Linie nicht durch Kreis
 
hehe ;) das ist mir doch schon klar, nur schau mal, die Linie kann von allen möglichen Richtungen kommen und das muss berücksichtigt werden so einfach geht das nicht... das muss irgendwas mit Vektor und Betrag vom Vektor sein, nur ich weiß nicht wie genau bzw. wie ich das im Quelltext realisieren soll.

DGL-luke 3. Jun 2005 20:41

Re: Linie nicht durch Kreis
 
da brauchst du keinen vektor, sondern trogonometrie. :)
und zu deinem glück schrieb ich da montag schulaufgabe :-D

du wullst wissen, wie viele pixel du nach rechts und nach oben gehen musst, damit deine linie den kreis nur berührt, nicht wahr?

schnell ne schöne vollkreisskizze gemacht... sin is für y, cos für x.

da wir vom winkel zur strecke wollen, geht das ganze so:

y = sin(µ);

x = cos(µ);

evtl. brauchst du noch ne fallunterscheidung für die einzelnen winkel.

also:

Delphi-Quellcode:
//Winkel := µ;
//Sinus
if (Winkel > 180) and (Winkel < 360) then
y := -y;
//Cosinus
if (Winkel > 90) and (Winkel < 270) then
x := -x;
wenn du den winkel noch nicht weisst, sag es, dann führ ich das ganze weiter aus(tipp: anfangs- und endpunkt bestimmen eine linie eindeutig, also auch ihren winkel zur x-achse).

BlueStarHH 3. Jun 2005 20:51

Re: Linie nicht durch Kreis
 
Hi Logic,

kannst Du den Quellcode posten, mit dem man einen Pfeil zeichnen kann? Vielen dank!

Logic 5. Jun 2005 14:46

Re: Linie nicht durch Kreis
 
Hallo DGL-luke ... ich muss sagen, dass ich es leider nicht verstanden habe ... wäre nett wenn du es weiter ausführen könntest :) danke

@BlueStar: http://www.delphipraxis.net/internal...pfeil+zeichnen

DGL-luke 5. Jun 2005 18:06

Re: Linie nicht durch Kreis
 
Liste der Anhänge anzeigen (Anzahl: 1)
sodele, hab hier ne zeichnung, anhand derer man es nachvollziehen können sollte:


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:55 Uhr.

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