Welche interne Genauigkeit wird von Adobe Illustrator verwendet? Oder anders ausgedrückt: Welche interne Darstellung verwendet Illustrator zum Speichern von Koordinatendaten?
Versuchen Sie dies (ich verwende CS6):
Folgendes bekomme ich, wenn ich das mache:
Dies ist offensichtlich ein extremes Beispiel, aber ich habe ähnliche Verzerrungen in realistischeren Szenarien erlebt, wenn Objekte einer umfangreichen Bearbeitung unterzogen wurden. Um dies zu vermeiden, musste ich in manchen Fällen auf einen vergrößerten Maßstab zurückgreifen und erst ganz am Ende meine Grafik auf die endgültige Größe skalieren.
Die interne Präzision von Illustrator ist natürlich nicht unendlich. Es scheint, dass Koordinaten letztendlich in einem kleinen Maßstab auf eine ganze Zahl gerundet werden (ich nehme einen Bruchteil eines Punktes an), so dass sich Rundungsfehler ansammeln können, die schließlich zu sichtbaren Verzerrungen führen.
Kann jemand etwas Licht ins Dunkel bringen?
Keine Computeranwendung hat unendliche Präzision. Selbst CAD-Anwendungen haben keine viel größere Genauigkeitsskala. Sie erlauben Ihnen jedoch, die Arbeitseinheit zu ändern, was Ihre Nullpunktposition ändert, während Illustrator immer alles in Punkten berechnet. Sie sollten wahrscheinlich lesen wollen, was jeder Informatiker über Gleitkommazahlen wissen muss , was mittlerweile für jeden Computerbenutzer gilt.
Es ist nichts falsch daran, im Maßstab zu zeichnen, das ist im Wesentlichen das, was die CAD-Anwendungen tun, sie haben nur die Möglichkeit, dem Benutzer diese Tatsache mitzuteilen. Siehe, die Anwendung speichert intern nur Zahlen. Die Interpretation dieser Zahlen liegt beim Frontend.
Jedenfalls kann ich dein Problem nicht nachvollziehen:
Bild 1 : ein 0,001-Punkt-Kreis, der progressiv um x10 skaliert wird (Bild von CC2017, aber Ergebnisse in cs 5 sind vergleichbar)
Nachdem ich eine cs6-Version aufgespürt habe, kann ich bestätigen, dass dies tatsächlich passiert.
Ich kann zum Beispiel sogar einen vollen Double-Float-Wert umrunden:
in 0100000001110111011010111110101110000101000111101011100001010010
out 0100000001110111011010111110110000000000000000000000000000000000
Es scheint also, dass der interne Wert des Systems sicherlich kein doppelter Float ist. Einzelschwimmer vielleicht? Es wäre sinnvoll für eine frühe Version eines Hardwarebeschleunigungscodes!
Ob das in CC2017 der Fall ist, muss ich zäh testen.
SWB
SWB
joojaa
joojaa
Ryan
SWB