Welche interne Präzision verwendet Adobe Illustrator? Oder anders ausgedrückt: Welche interne Darstellung verwendet Illustrator zum Speichern von Koordinatendaten?
Versuchen Sie dies (ich verwende CS6):
- Zoomen Sie so nah wie es Illustrator zulässt (6400% in CS6).
- Zeichne einen Kreis.
- Ändern Sie die Größe des Kreises auf 0,001 × 0,001 pt.
- Ändern Sie die Größe des Kreises auf 10 × 10 pt.
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 einigen Fällen auf die Arbeit in vergrößertem Maßstab zurückgreifen und meine Grafik erst am Ende auf die endgültige Größe anpassen.
Die interne Präzision von Illustrator ist eindeutig 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?
Antworten:
Keine Computeranwendung hat unendliche Präzision. Selbst CAD-Anwendungen haben keine viel größere Genauigkeitsskala. Sie ermöglichen es Ihnen jedoch, die Arbeitseinheit zu ändern, wodurch sich Ihre Nullpunktposition ändert, während der Illustrator immer alles in Punkten berechnet. Sie sollten wahrscheinlich lesen wollen, was jeder Informatiker über Gleitkommazahlen wissen muss , was mittlerweile für alle Computerbenutzer gilt.
Es ist nichts Falsches 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 intern nur speichert Zahlen Interpretation dieser Zahlen ist bis zum Frontend.
Jedenfalls kann ich Ihr Problem nicht wiederholen:
Bild 1 : Ein 0,001-Punkt-Kreis, der progressiv um x10 skaliert wird (Bildform CC2017, aber Ergebnisse in cs 5 sind vergleichbar)
Ich kann das Problem jedoch auf CS6 replizieren
Nachdem ich eine CS6-Version gefunden habe, kann ich überprüfen, ob dies tatsächlich passiert.
Ich kann sogar einen vollen Double-Float-Wert umrunden, zum Beispiel:
Es scheint also, dass der interne Wert des Systems sicherlich kein Double Float ist. Single Float vielleicht? Es wäre sinnvoll für eine frühe Version eines Hardwarebeschleunigungscodes!
Ich muss testen, ob das in CC2017 hart der Fall ist.
quelle