Qual é a precisão interna usada pelo Adobe Illustrator? Ou, de outra forma, que representação interna o Illustrator usa para armazenar dados de coordenadas?
Tente isso (estou usando o CS6):
- Aumente o zoom o mais perto possível do Illustrator (6400% no CS6).
- Desenhar um círculo.
- Redimensione o círculo para 0,001 × 0,001 pt.
- Redimensione o círculo para 10 × 10 pt.
Aqui está o que recebo quando faço isso:
Este é obviamente um exemplo extremo, mas experimentei distorções semelhantes em cenários mais realistas quando os objetos passaram por uma edição extensa. Para evitar isso, tive que recorrer, em alguns casos, a trabalhar em uma escala ampliada e redimensionar apenas meu trabalho artístico para o tamanho final no final.
Claramente, a precisão interna do Illustrator não é infinita. Parece que as coordenadas são finalmente arredondadas para um número inteiro em pequena escala (presumo que haja uma fração de ponto), de modo que os erros de arredondamento possam se acumular, culminando em distorção visível.
Alguém pode lançar alguma luz sobre isso?
Respostas:
Nenhum aplicativo de computador tem precisão infinita. Mesmo aplicativos CAD não possuem uma escala de precisão muito maior. No entanto, eles permitem que você altere a unidade de trabalho, o que altera a localização do ponto zero, enquanto o illustrator calcula sempre tudo em pontos. Você provavelmente deve ler o que todo cientista da computação precisa saber sobre números de ponto flutuante , que agora se aplicam a todos os usuários de computador.
Não há nada errado em desenhar em escala, é essencialmente isso que os aplicativos de CAD têm, apenas, a possibilidade de informar esse fato ao usuário. Veja o aplicativo internamente, apenas armazena números de interpretação desses números até o front-end.
Enfim, não consigo replicar o seu problema:
Imagem 1 : um círculo de 0,001 pt escalado progressivamente por x10 (formulário de imagem CC2017, mas os resultados no cs 5 são comparáveis)
No entanto, posso replicar o problema no CS6
Depois de rastrear uma versão cs6, posso verificar se isso realmente acontece.
Posso até dar uma ida e volta a um valor de flutuação dupla completa, por exemplo:
Portanto, parece que o valor interno do sistema certamente não é um flutuador duplo. Flutuador único, talvez? Faria sentido para uma versão inicial de um código de aceleração de hardware!
Eu tenho que testar se esse é o caso no CC2017 difícil.
fonte