Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

11

14.11.2011, 15:59

Ich frage mich gerade wieso die Winkel-Änderungen nach innen immer größer wird (und somit die Anzahl Abschnitte immer kleiner). Genau das erzeugt das Problem ja erst. Ändere den Winkel einfach immer um den selben Wert und lasse ihn konstant, dann gibt es auch kein Problem mit solch hässlichen Ecken. Wenn Du absichtlich nach innen her die Anzahl Kreis-Abschnitte reduzierst, dann ist doch ganz klar, dass das eckig wird, wenn Du zu heftig reduzierst. Aus 4 Ecken wird nunmal kein Kreis. Aus 8 oder 12 schon eher.

Zitat

was reine Verschwendung ist, da ein kleiner Kreis mit weniger Segm,enten genau so glatt aussehen kann, wie ein großer mit vielen

Nein, falsch. Es macht keinen Unterschied wie groß oder klein ein Kreis ist. Wenn er nur 6 Ecken hat, dann sieht er immer eckig aus. Wenn er immer 100 hat, sieht er immer rund aus. Das ist vom Radius absolut unabhängig. Das liegt schlicht daran, dass der Winkel zwischen zwei Abschnitten immer identisch ist, egal wie groß oder klein der Kreis ist. Nur die Anzahl der Abschnitte ist dabei relevant - also die Anzahl der Eckpunkte.

Zitat

wenn die Segmente richtig gezeichnet werden, spielt deren Länge keine größere Rolle
einen Kreis kann man auch mit Hilfe von 4 Segmenten Zeichnen, ohne dass es ein Viereck wird

Erm, nein. Ein Kreis mit 4 Seiten, bzw. 4 Ecken ist nunmal ein Viereck und kein Kreis. Per Definition schon ;) Oder probierst Du hier die wohl bekannte Quadratur des Kreises?
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »BlueCobold« (14.11.2011, 16:07)


Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

12

14.11.2011, 17:34

Mal ne dumme Frage: Da es sich ja um ein 2D Objekt handelt könntest du doch einfach die Gleichung mit einer Epsilonumgebung versehen und das Bild rastern. Das ist zwar nicht die schnellste Variante, aber wahrscheinlich die Schönste (Bei geeigneter Epsilonumgebung).
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

13

15.11.2011, 07:32

Ich frage mich gerade wieso die Winkel-Änderungen nach innen immer größer wird (und somit die Anzahl Abschnitte immer kleiner). Genau das erzeugt das Problem ja erst. Ändere den Winkel einfach immer um den selben Wert und lasse ihn konstant, dann gibt es auch kein Problem mit solch hässlichen Ecken. Wenn Du absichtlich nach innen her die Anzahl Kreis-Abschnitte reduzierst, dann ist doch ganz klar, dass das eckig wird, wenn Du zu heftig reduzierst. Aus 4 Ecken wird nunmal kein Kreis. Aus 8 oder 12 schon eher.


Ähm ja, siehe hier:

Nein, falsch. Es macht keinen Unterschied wie groß oder klein ein Kreis ist. Wenn er nur 6 Ecken hat, dann sieht er immer eckig aus. Wenn er immer 100 hat, sieht er immer rund aus. Das ist vom Radius absolut unabhängig. Das liegt schlicht daran, dass der Winkel zwischen zwei Abschnitten immer identisch ist, egal wie groß oder klein der Kreis ist. Nur die Anzahl der Abschnitte ist dabei relevant - also die Anzahl der Eckpunkte.


Nein, das ist leider falsch:


(Link)


Der äußere Kreis besteht aus 100 Segmenten. Der innere - der ja eigentlich auch perfekt rund aussieht - nur aus 16. Zeichne ich im Gegenzug den äußeren Kreis nur mit 16 Segmenten, wird dieser aber sichtbar eckig. D.h. es besteht ein ganz starker Zusammenhang zwischen Radius (der natürlich vom Ausgabemedium und der tatsächlichen Größe des Ergebnisses abhängt) und Qualität. Das, was du über den Winkel schreibst, ist mathematisch zwar vollkommen richtig, allerdings ist hier der visuelle Eindruck nicht von der Mathematik abhängig, sondern eher von der Biologie des menschlichen Auges und Gehirns.

Und aus genau diesem Grund will bzw. muss ich den Spagat machen, den Winkel nach innen hin immer weiter zu vergrößern - nur eben nicht wie jetzt proportional zur Abnahme des Radius sondern irgend wie "etwas" weniger.

14

15.11.2011, 07:58

OK, das war wohl gestern wirklich nicht mein Tag, ich habe es jetzt gebacken bekommen. Im Prinzip ganz einfach: der Unterschied vom äußeren zum inneren Radius wird verwendet, um mit einem zusätzlichen die Veränderung des Radius und des Winkels zusätzlich zu beeinflussen. D.h. eigentlich nur eine recht simple Multiplikation.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

15

15.11.2011, 09:01

Das, was du über den Winkel schreibst, ist mathematisch zwar vollkommen richtig, allerdings ist hier der visuelle Eindruck nicht von der Mathematik abhängig, sondern eher von der Biologie des menschlichen Auges und Gehirns.

Ja und nein. Dass der kleine Kreis da nicht eckig aussieht liegt nicht daran, dass er klein ist, sondern daran, dass er pixelig ist. Klar, wenn ein Kreis verglichen zur Auflösung zu klein wird, dann sieht man die Ecken nicht mehr so sehr. Mach die Auflösung doppelt oder viermal so groß und du siehst die Ecken natürlich wieder, unabhängig von der eigentlichen Größe des Kreises. Wenn ich z.B. einen Kreis mit 4cm Radius und 10 Eckpunkten in einer Bildschirm-Auflösung von 320x200 auf einem 15" Bildschirm rendere, dann ist er super pixelig und die Ecken sieht man nicht mehr so gut. Mache ich ihn 4cm Radius groß mit 10 Ecken bei einer Auflösung von 1920x1080 auf einem 15" Bildschirm, dann sieht man die Ecken ziemlich deutlich. Dennoch sind beide Kreise gleich groß.
Aber Du hast das Problem ja gelöst, also ist alles gut.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

16

15.11.2011, 11:05

Ja und nein. Dass der kleine Kreis da nicht eckig aussieht liegt nicht daran, dass er klein ist, sondern daran, dass er pixelig ist. Klar, wenn ein Kreis verglichen zur Auflösung zu klein wird, dann sieht man die Ecken nicht mehr so sehr.


Japp, genau das ist bei meinem Ausgabemedium (etwas Plotter-artiges) eben der Fall. Ist der Kreis nur klein genug, geht es auch mit weniger Segmenten - und das schlichtweg deswegen, weil es keine Funktion zum Vergrößern gibt, die den Kreis so groß machen könnte, dass die "Pixeligkeit" des Werkzeuges wieder sichtbar werden könnte.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

17

15.11.2011, 11:21

Wenn Dein Werkzeug keine pixelige Ausgabe erzeugt, dann brauchst Du doch trotzdem mehr Kanten/Ecken (Segmente ist in diesem Fall das falsche Wort, schon von Anfang an in diesem Topic ;) ). Oder hab' ich Dich falsch verstanden? Aber is auch pups. Wenn's Dir jetzt so reicht, dann is doch gut.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

18

15.11.2011, 12:32

Wenn Dein Werkzeug keine pixelige Ausgabe erzeugt, dann brauchst Du doch trotzdem mehr Kanten/Ecken


Pixeln tut es nicht, aber es hat eine gewisse Breite, die dann ebenfalls dazu führt, dass das Ergebnis im Vergleich zum Original so "unscharf" ist, dass es eben nicht mehr auffällt.

Werbeanzeige