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.
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².
Javanola schrieb: > http://www.java2s.com/Tutorial/Java/0261__2D-Graphics/FillArc.htm Hoffentlich gibt es für den µC des TO eine Java RTE
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.
:
Bearbeitet durch User
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
ab schrieb: > Mit sin/cos x und y für den Start und Zielwinkel berechnen Gibt es Funktionen für sin und cos, die mit ganzzähligen Argumenten arbeiten? Die gewöhnliche Funktionen brauchen ja double/float. ab schrieb: > Du brauchst ja wahrscheinlich nur die Punkte für ganze Werte für x/y Ich denke, für u8 u16 nutzen und rechte Byte am Ende abrunden.
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.