Sector zeichnen, wie?

OP #6461411
Lesenswert?
• ▲
▼
Guten Abend,
ich habe nun eine Frage: ich möchte gerne auf dem Bildschirm auch Sector 
zeichnen, gestrichen und als Bogen. Wie wäre das am besten zu machen?
Es gibt schon Funktionen: Punkt, Linien (horisontal, vertikal und 
willkürlich), Viereck gefüllt und nicht, Kreis gefüllt und nicht. Ich 
möchte eine Funktion, die als Eingang die Argumente hat: Zentrum (x,y), 
Radius, Anfangs- und Endwinkel. Kreisfunktionen passen dafür kaum, da 
die nach dem Prinzip x^2*y^2=r^2 gebaut sind und Ausgangspünkte sind 0°, 
90°, 180° und 270° des Kreises - diese Winkel sind aber nicht unbedingt 
in einem Sector präsent. Ich möchte aber gerne so etwas wie Folge von 
Pünkten von a und bis zu b haben.

Diese Funktionen werden nur selten gebraucht, deshalb ist 
Geschwindigkeit nicht so wichtig.

Danke für Tipps im voraus.
Gast #6461418
Lesenswert?
• ▲
▼
Maxim B. schrieb:
> Kreisfunktionen passen dafür kaum, da die nach dem Prinzip x^2*y^2=r^2
> gebaut sind ...

Und was gefällt dir daran bis auf das "*" nicht?
Wenn du deinen Sektor durch einen Radius charakterisieren willst, ergibt 
sich doch genau ein Kreissektor, für den gilt x²+y²=r².
OP #6461448
Lesenswert?
• ▲
▼
Wolfgang schrieb:
> Wenn du deinen Sektor durch einen Radius charakterisieren willst, ergibt
> sich doch genau ein Kreissektor, für den gilt x²+y²=r².

Für mich bleibt aber unklar, wie ich Grad 0...359 in x und y umwandele.
Aufgrung der Strictur von Bildschirm finde ich praktisch, y (horisontal) 
in +-1 Schritten zu nehmen und x (vertikal) davon zu berechnen. Aber ich 
kann nicht so einfach Grad, die in einem Kreis liegen, auf eine Fläche 
zu spiegeln, ohne komplizierte float-Funktionen zu nehmen. Aber ich 
vermute, man kann doch ohne float alles berechnen, die Frage ist nur 
wie.

Wolfgang schrieb:
> Hoffentlich gibt es für den µC des TO eine Java RTE

Bitte keine Java und C++. Mir geht es darum, Algorithmus zu verstehen. 
Fertige vorcompilierte Libs gibt es in Netz wie Sand im Meer. Ich bin 
aber kein Arduino-Fan, ich mag es immer gut zu sehen, was und wie genau 
gemacht wird.
Gast #6461474
Lesenswert?
• ▲
▼
Mit sin/cos x und y für den Start und Zielwinkel berechnen, und dann mit 
x²+y²=r² (Fallunterscheidung) die dazwischen liegenden Pixel auffüllen.

Du brauchst ja wahrscheinlich nur die Punkte für ganze Werte für x/y

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.