[cstex] PDF(LateX) a circle

Ladislav Bitto geoflabi at savba.sk
Mon Jul 2 11:03:44 CEST 2007


Zdravim,

podarilo sa mi, podobnym sposobom ako IPE a dokonca ako samotny arc
v PostScripte, nakreslit kruznicu. Na moje velke prekvapenie aj arc
vykresluje kruznicu z Bezierovych kriviek. To znamena nepresne. V PS sa
tiez vykresluje kruznica (cela) zo styroch volani curveto (to zrejme
vypocita podprogram/funkcia arc). Na toto som prisiel uplne nahodou.
Ked som si odladil 90 stupnov (nakreslil som 90 stupnov s arc a nato som
skusal curveto s mensou hrubkou a inou farbou). Ked to sadlo, vytvoril som
programecek, ktory mi vypise priamo do grafu odchylky kontrolnych
bodov od kruznice, aby som mohol v pohode odladit mensie stupne (teda
napriklad 0-15 stupnov). Tu ma cakalo prekvapenie. Aj ked sa mi zdalo,
ze krivka s curveto je totozna s krivkou s arc (pozeral som 5000 DPI),
kontrolne body ukazovali necakene velke odchylky (najviac pri 22.5 a 67.5
stupna). Na 20cm je to iba cca 0.04mm (pri pozerani detailov pri cca
5000DPI je to na obrazovke uz 5mm (!). Tak toto mi uz vysvetluje vela
veci, co som vacsinou pripisoval tomu, ze to je zaokruhlovacia chyba.
Nie je. Uz pri pohlade, ked mate A4 na sirku obrazovky je zretelne, ze pri
krizovani je trosku akoby hrubsia kruznica.

Dufam, ze kazdy si to moze overit s nasledujucim TeXovskym kodom.
Su tam dve kruznice (0-90 a 22-23 stupnov). Pretina ich jedna ciara zhruba
22.5 stupnov. Ked kliknete s pravym tlacitkom mysi na ten bod tak uvidite
vo velkom rozliseni dve kruznice a jednu ciaru, ktora ich pretina (hoci
kruznice idu z rovnakeho bodu a s rovnakym polomerom). Ten malicky subor
sa da prelozit aj s plainom, ked vyhodite prve dva a posledny riadok. Vo
velkom rozliseni je medzi dvoma kruznicami na monitore 5mm (!) rozdiel.
Hrubku ciary som nastavil na extra malu, aby aj pri velkom rozliseni
GSVIEW vykreslil iba jeden raster hrubu ciaru.

\documentstyle[12pt]{article}
\begin{document}
\null
\special{ps:
0.000001 setlinewidth
0 0 moveto
2000 825 lineto
stroke 0 0 2000  0 90 arc
stroke 0 0 2000 22 23 arc
stroke
}
\end{document}


Zdravim
Ladislav Bitto



More information about the csTeX mailing list