Illustrator chính xác nội bộ?


7

Độ chính xác bên trong được sử dụng bởi Adobe Illustrator là gì? Hoặc đặt một cách khác, Illustrator sử dụng biểu diễn nội bộ nào để lưu trữ dữ liệu tọa độ?

Hãy thử điều này (Tôi đang sử dụng CS6):

  • Phóng to gần như Illustrator cho phép (6400% trong CS6).
  • Vẽ một vòng tròn.
  • Thay đổi kích thước vòng tròn thành 0,001 × 0,001 pt.
  • Thay đổi kích thước vòng tròn thành 10 × 10 pt.

Đây là những gì tôi nhận được khi tôi làm điều đó:

Vòng tròn trở thành hình vuông

Đây rõ ràng là một ví dụ cực đoan, nhưng tôi đã trải qua những biến dạng tương tự trong các tình huống thực tế hơn khi các đối tượng đã trải qua chỉnh sửa mở rộng. Để tránh điều này, tôi đã phải dùng đến một số trường hợp để làm việc ở quy mô mở rộng và chỉ thay đổi kích thước tác phẩm nghệ thuật của tôi thành kích thước cuối cùng vào cuối.

Rõ ràng, độ chính xác bên trong của Illustrator không phải là vô hạn. Dường như các tọa độ cuối cùng được làm tròn thành một số nguyên ở một tỷ lệ nhỏ (tôi giả sử một số phần của một điểm), sao cho các lỗi làm tròn có thể tích lũy, cuối cùng lên đến đỉnh điểm là biến dạng có thể nhìn thấy.

Bất cứ ai có thể làm sáng tỏ về điều này?


@joojaa Bạn đang sử dụng phiên bản Illustrator nào? Có lẽ họ đã cải thiện hậu CS6 này?
SWB

@joojaa Bạn không thấy điều này trong CS5? Điều đó thật thú vị. Nó chắc chắn có thể tái tạo một cách nhất quán trong bản sao Illustrator CS6 của tôi (16.0.0 x64). Chắc chắn đó không phải là hồi quy trong CS6 ...
SWB

Bằng cách này, chúng tôi có thể đo lường độ chính xác bằng cách viết kịch bản. Nhưng tôi e rằng cách các bình luận về tour du lịch đã đưa ra câu hỏi này khiến nó trở nên lạc quan trên trang web này.
joojaa

Ok tôi sau khi theo dõi CS6, cuối cùng tôi cũng có thể sao chép vấn đề này trên CS6
joojaa

Tôi đã thử điều này với CS5 và kết thúc với một hình dạng thậm chí xa lạ!
Ryan

Câu trả lời:


1

Không có ứng dụng máy tính nào có độ chính xác vô hạn. Ngay cả các ứng dụng CAD không có tỷ lệ chính xác lớn hơn nhiều. Tuy nhiên, chúng cho phép bạn thay đổi đơn vị làm việc, thay đổi vị trí điểm 0 của bạn, trong khi đó, luôn luôn minh họa tính toán mọi thứ theo điểm. Có lẽ bạn nên đọc những gì mọi nhà khoa học máy tính cần biết về số dấu phẩy động , hiện được áp dụng cho mọi người dùng máy tính.

Không có gì sai khi vẽ theo tỷ lệ, đó thực chất là những gì các ứng dụng CAD làm chúng chỉ có một phương tiện để nói với người dùng thực tế này. Xem ứng dụng trong nội bộ chỉ lưu trữ số giải thích các số đó là tùy thuộc vào frontend.

Dù sao tôi không thể sao chép vấn đề của bạn:

nhập mô tả hình ảnh ở đây

Hình ảnh 1 : một vòng tròn 0,001 pt được tăng dần theo x10 (hình ảnh CC2017 nhưng kết quả trong cs 5 là tương đương)

Tuy nhiên tôi có thể sao chép sự cố trên CS6

Sau khi theo dõi phiên bản cs6, tôi có thể xác minh rằng điều này thực sự xảy ra.

Tôi thậm chí có thể làm tròn một giá trị float kép đầy đủ, ví dụ:

in  0100000001110111011010111110101110000101000111101011100001010010 
out 0100000001110111011010111110110000000000000000000000000000000000

Vì vậy, có vẻ như giá trị nội bộ của hệ thống chắc chắn không phải là một float kép. Phao đơn có lẽ? Nó có ý nghĩa đối với phiên bản đầu tiên của mã tăng tốc phần cứng!

Tôi phải kiểm tra xem đó có phải là trường hợp khó khăn trong CC2017 không.


Tôi hiểu điều đó. (Tôi thực sự là một nhà phát triển và kỹ sư.) Rõ ràng độ chính xác bên trong của Illustrator (hoặc bất kỳ phần mềm nào) không phải là "vô hạn". Tôi đang cố xác định giới hạn thực tế trong Illustrator là gì. Illustrator thậm chí dường như không sử dụng dấu phẩy động, vì ngay cả điểm nổi chính xác đơn cũng có thể dễ dàng bảo toàn vòng tròn trong ví dụ của tôi. Thay vào đó, nó dường như bị cắt cụt thành một số nguyên ở một mức nào đó.
SWB

@SWB Có lẽ nó đang sử dụng một số học điểm cố định, vì về cơ bản nó là một công cụ mô tả. Ive đã suy đoán về điều này trước đây, tôi nghĩ rằng họ đang chuyển sang điểm nổi họ có thể ở một số trạng thái hỗn hợp. Vấn đề thực sự là làm thế nào adobe chọn để vận hành ma trận biến đổi mà không có ý nghĩa gì. Về bản chất, nếu bạn từng tương tác với 2 đối tượng với các phép biến đổi khác nhau, tất cả các ma trận sẽ được đặt lại thành danh tính. Điều này sẽ thổi bay ngay cả những kỳ vọng thô sơ về độ chính xác.
joojaa

RE: số học điểm cố định. Đó là dự đoán của tôi là tốt. Tôi hy vọng ai đó thực sự biết sẽ kêu vang và cho chúng tôi biết chắc chắn. Tôi đã thử Googling và trở nên trống rỗng.
SWB

Làm thế nào bạn làm bài kiểm tra của bạn? Điều đó thực sự trông giống như một chuyển đổi thành đơn và trở lại gấp đôi. . khứ hồi các điểm kiểm soát của một vòng tròn 10-> 0,001-> 10 mà không bị suy giảm rõ rệt. Tò mò rằng bạn chỉ nhìn thấy điều này trong CS6. Tôi cho rằng nó là thứ gì đó cơ bản hơn đối với Illustrator nói chung, nhưng có lẽ đó là một lỗi.
SWB

1
Tôi đã tìm thấy bài đăng này được thực hiện bởi nhà phát triển Illustrator Teri Pettit vào năm 2003 (khung thời gian 10/11): Groups.google.com/d/msg/adobe.illustrator.macffy/KSqIpfpQHdU/ . Cô nói rằng Illustrator làm tròn các giá trị thành 0,0001 pt khi lưu, nhưng sử dụng các số float chính xác đơn trong khi tệp được mở. Đây là sau khi thay đổi từ định dạng gốc dựa trên EPS sang định dạng gốc dựa trên PDF, xảy ra với phiên bản 9, vì vậy điều này vẫn có thể đúng cho đến ngày nay. Tuy nhiên, nó vẫn không giải thích hành vi được quan sát trong CS6, trừ khi đó chỉ là một lỗi.
SWB
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.