Autor Beitrag
pagan1900
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: Di 25.04.06 15:37 
Hi ich habe ein probleme

wie ziehe ich den radius einer ellipse von lineto ab?
Ich möchte folendes:

Die ellipse stellt einen Knoten eines graphen da und line to den "pfeil".
Nun möchte ich das die linie erst ab dem ellipsenrand gezeichnet wird (moveto), also
moveto-elipsenradius und beim zielknoten lineto-ellipsenradius.

Bisher waren meine bemühungen erfolglos, die linie startet innerhalb des ellipsen zentrum und endet im (zielkonten) ellipsenzentrum

wie kann ich dieses verhindern?

und wie kann ich es bewerkstelligen, dass die gewichtung des "pfeils" in die mitte der
gezeichneten linie erscheint ?

danke für eure hilfe!
Kroko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1284

W98 W2k WXP
Turbo D
BeitragVerfasst: Mi 26.04.06 07:43 
(a) Schnittpunkit Gerade-Ellipse berechnen und dann die Linie zeichnen
oder
(b) erst die Linie, dann die gefüllte Ellipse zeichnen

_________________
Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!


Zuletzt bearbeitet von Kroko am Mi 26.04.06 09:30, insgesamt 1-mal bearbeitet
pagan1900 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: Mi 26.04.06 09:27 
das problem ist aber, das die knoten erst gesetzt werden mussen von dem "benutzer" und dann im laufe des dijkstra algorithmus durch angabe von anfang/endknoten eines "Pfeils" die linie ins spiel kommt!

da ich noch nie mit der grafikdarstellung gearbeitet habe währe ein beispiel quellcode nett!

danke für eure muhen :=)
Kroko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1284

W98 W2k WXP
Turbo D
BeitragVerfasst: Mi 26.04.06 09:41 
zeichnen einer Ellipse:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure Ellipse (const ACanvas: TCanvas; const Xm,Ym,A,B: Integer;
                   const AColor1,AColor2: TColor);
var
  Ha,Hb: Integer;
begin
  Ha := A shr 1; // A:2
  Hb := B shr 1; // B:2
  ACanvas.Brush.Color := AColor1;  // Füllfarbe
  ACanvas.Pen.Color := AColor2;    // Randfarbe
  ACanvas.Ellipse (Xm-Ha,Ym-Hb,Xm+Ha,Ym+Hb);
end;

mit Linie etwas so
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure Ellipse_Line (const ACanvas: TCanvas; const Xm,Ym,A,B,Xm1,Xm2: Integer; 
                        const AColor1,AColor2,AColor3: TColor);
var
  Ha,Hb: Integer;
begin
  ACanvas.Pen.Color := AColor3; // Linienfarbe
  ACanvas.MoveTo (Xm,Ym);
  ACanvas.Lineto (Xm1,Ym1);
  Ha := A shr 1; // A:2
  Hb := B shr 1; // B:2
  ACanvas.Brush.Color := AColor1;  // Füllfarbe
  ACanvas.Pen.Color := AColor2;    // Randfarbe
  ACanvas.Ellipse (Xm-Ha,Ym-Hb,Xm+Ha,Ym+Hb);
end;


//EDIT

Oder siehe hier :x

_________________
Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
pagan1900 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: Fr 28.04.06 14:02 
Titel: problem mit der "beschriftung der pfeile"
Danke erstmaal für die tips mit den knoten hat super funkioniert!

nun hab ich folgendes problem:
Ich möchte das die im dijkstra eingegebene pfeilbewertung an den "pfeil" geschrieben wird
Die lösung müste ja sein

ich habe: Startpunkt X und Y (durch die x/y koordinaten der knoten)
Endpunkt x und y (durch die x/y koordinaten der knoten)

nun muss ich irgendwie unabhangig der lage der knoten die mittelpunktkoordinaten des pfeils berechnen und dann die zahl etwas nach oben versetzt ausgeben, aber wie
(wenn möglich mit code) ??

Danke für die hilfe!