Re: einen Kreis zu Fuß zeichen
Wie?
Kann man sagen LineTo = LineTo + MoveTo? :gruebel: Falls ja, dann stimmt Alcs Lösung natürlich, falls nein, dann verstehe ich sie nicht. MoveTo (Hinspringen) LineTo (von MoveTo aus zeichnen) oder nicht? :gruebel: |
Re: einen Kreis zu Fuß zeichen
wenn du ohne moveto arbeitest ( am anfang einmal )
dann ziehst du ne linie von 0,0 bis zu deinem ersten lineto wenn du das unschöne ding da weghaben willst dann solltest du erstmal mit moveto an deinen anfang im kreis springen und dann weiter machen mit lauter lineto's ansonsten braucht man kein moveto .. ausser man will halt ohne eine zwischenlinie ziehen irgendwo anderst ne neue linie ziehen |
Re: einen Kreis zu Fuß zeichen
Moveto -> setztden Stift an die übergebene Position
Lineto -> zeichnet eine Linie von der aktuellen Position zur übegebenen Position und setzt den Stift dorthin [steht aber auch alles so in der OH ] |
Re: einen Kreis zu Fuß zeichen
Hi Jungs,
Zitat:
Und zum Canvas & co.: "It's not a feature, it's a bug". So ist es kein Copy&Waste-Code :mrgreen: Das Problem muss aber nicht notwendigerweise mit Trigonometrie gelöst werden:
Delphi-Quellcode:
Damit erhälst du die Punkte, welche du dann nur verbinden musst. Der Weg mit y1 und y2 ist nötig, da man eine quadratische Funktion umgeformt hat und damit eine Lösung fallen lassen würde. (ich geh hier nicht weiter ins Detail :roll:)
for i := mx-r to mx+r do
begin y1 := sqrt(sqr(x)-sqr(r)); y2 := -sqrt(sqr(x)-sqr(r)); end; Greetz alcaeus |
Re: einen Kreis zu Fuß zeichen
@Toxman: Ich kenne die Funktion, OH? Das sagst du mir?
Das habe ich doch vorher gesagt, musst nur lesen. ;) |
Re: einen Kreis zu Fuß zeichen
Wo hast du was von der OH gesagt? Es kam mir auch komisch vor, aber
Zitat:
|
Re: einen Kreis zu Fuß zeichen
Naja, ich meinte nur:
MoveTo (Hinspringen) LineTo (von MoveTo aus zeichnen) oder nicht? Und deshalb wundere ich mich, wieso nur einmal MoveTo bei Alc steht und zig Mal LineTo. :wink: |
Re: einen Kreis zu Fuß zeichen
Weil LineTo auch die aktuelle Position an das Ende der Linie setzt ;).
Ist im Grunde ein MoveTo, nur dass ne Linie mitgezogen wird. |
Re: einen Kreis zu Fuß zeichen
Ich wuerde mich mal mit dem Bresenham-Algorithmus beschaeftigen.
Der kann nicht nur Linien zeichnen sondern auch Ellipsen/Kreise. Alles ohne Floating Point Operationen. Der Algorithmus liefert sogar Antialiasing-Informationen. |
Re: einen Kreis zu Fuß zeichen
Hallo,
bei mir geht der Quelltext vorn und hinten nicht :(.
Delphi-Quellcode:
Da meckert er schon mit return. ([Fehler] Unit1.pas(27): Undefinierter Bezeichner: 'return')
return Deg*Pi/180;
Delphi-Quellcode:
hier erzählt er mir: "[Fehler] Unit1.pas(27): Funktion benötigt Ergebnistyp".
function ZeichneKreis(mx, my: Integer; r: Real);
Des weiteren: [Fehler] Unit1.pas(32): Undefinierter Bezeichner: 'MoveTo' [Fehler] Unit1.pas(35): Undefinierter Bezeichner: 'DegToRad' [Fehler] Unit1.pas(37): Inkompatible Typen: 'HDC' und 'Extended' [Fehler] Unit1.pas(39): Inkompatible Typen: 'HDC' und 'Extended' Kamm mir bitte jemand helfen? Whoopee |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:06 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