"Runde" Linie auf TCanvas
Hallo,
gibt es einen Befehl auf dem Canvas, der eine abgerundete Linie zeichnet? Also man gibt 3 Punkte an und es wird eine Linie Punkt 1,2 und 3 gezeichnet, die jedoch abgerundet wird (So ähnlich wie bei Paint diese Schlängellinie "Bögen"). Liebe Grüße! |
Re: "Runde" Linie auf TCanvas
Hallo,
Dazu kannst du die Methode Canvas.Arc benutzen ;) Gruß Neutral General |
Re: "Runde" Linie auf TCanvas
Von Haus aus kann Canvas keine Bezier-Splines
|
Re: "Runde" Linie auf TCanvas
Ein Bezier-Spline würde auch nicht durch Punkt 2 gehen, und braucht an sich 4 Punkte ;) (Ich weiss... Klugscheisserei. Aber ist Freitag, da kann ich nicht anders :stupid:)
Edit: Um etwas mehr "Fleisch" zu liefern: Ein "Bogen" ist mit 3 Punkten unterdefiniert. Du musst wenn dann, ein paar mehr Annahmen machen, oder mehr Daten haben. Ein Kreis ist z.B. durch 3 Punkte eindeutig definiert, so dass du diesen Kreis zeichnen könntest, und nur das Segment, dass den mittleren Punkt beinhaltet beibehälst. Alternativ könntest du ein Cardinal Spline nehmen, musst dann aber für die Endpunkte eine Strategie haben, da diese an sich nicht erreicht werden (Verdopplung der Punkte, Extrapolation weiterer Punkte). Dann gäbe es noch B-Splines, wo man aber ein Fitting-Prozess anwenden muss, um interne Punkte wirklich zu berühren. Die erstmal wichtige Aussage ist: So etwas bringt TCanvas nicht fertig und einfach mit, da wäre Handarbeit angesagt. |
Re: "Runde" Linie auf TCanvas
Zitat:
|
Re: "Runde" Linie auf TCanvas
Liste der Anhänge anzeigen (Anzahl: 1)
[OT]
Hier hat aktuell (14.05.2010, 21:50) jemand 1337 Beiträge verfasst! (fällt mir nur gerade so auf :) ) :dancer2: :dp: :dancer: unten ein kleiner Screenshot =) [/OT] |
Re: "Runde" Linie auf TCanvas
Zitat:
oder was meinst du? |
Re: "Runde" Linie auf TCanvas
Zitat:
|
Re: "Runde" Linie auf TCanvas
Bitte zurück zum Thema. Über die verschiedensten Zahlen und deren Interpretationen könnt ihr aber gern ein neues Thema in Klatsch und Tratsch eröffnen.
|
Re: "Runde" Linie auf TCanvas
Ich habe gestern auch selbst die Funktion PolyBezier gefunden. Danke!
Also 4 Punkte in einem Array:
Delphi-Quellcode:
var Punkte:Array of TPoint;
begin SetLength(Punkte,4); Punkte[0]:=Point(StartX,StartY); Punkte[3]:=Point(EndeX,EndeY); //Punkte[1] und [2] sind dann die Punkte, zu denen abgelenkt wird Image1.canvas.polybezier(Punkte); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:13 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