Thread View: pl.comp.grafika
2 messages
2 total messages
Started by $tipa
Tue, 20 Dec 2011 19:20
Crosspost: sposób opisu krzywej w pliku EPS?
Author: $tipa
Date: Tue, 20 Dec 2011 19:20
Date: Tue, 20 Dec 2011 19:20
36 lines
1797 bytes
1797 bytes
Chcę sobie napisać programik Deformujący krzywą, a dokładniej "naklejający" ją na sferę. Ale nie wszystkie liczby, którymi jest ona opisana w pliku eps rozumiem. Przykład krzywej 4-punktowej: @rax %Note: Object 2.13987 1.19509 7.65383 8.47814 @E /$fm 0 def 0 J 0 j 22.925585626053735 setmiterlimit [] 0 d 0 R 0 @G [ 1.00 0.00 1.00 0.00 0.00 null ] set_outline_color 0 0.56693 0.56693 0.00000 @w 2.37685 8.34094 m 3.00019 9.00057 9.00057 7.00044 7.37717 8.34094 C 6.00038 7.00044 6.00038 4.00025 7.37717 3.34063 C 6.00038 0.00000 1.00006 1.00006 2.37685 3.34063 C 4.00025 5.00031 2.00013 7.00044 2.37685 8.34094 C @c S Nie wiem co znaczy ten wiersz: 2.13987 1.19509 7.65383 8.47814 @E bo, gdy zmieniłem powyższe liczby, krzywa po zaimportowaniu do corela wyglądała tak samo. Nie wiem też, co oznacza ten wiersz: 0 J 0 j 22.925585626053735 setmiterlimit Bo gdy zmieniłem 22.92... na coś innego, też nic się nie stało. Ale jednak po coś one chyba są $tipa
Re: Crosspost: sposób opisu krzywej w pliku EPS?
Author: Stefan Nawrocki
Date: Tue, 20 Dec 2011 19:50
Date: Tue, 20 Dec 2011 19:50
53 lines
2644 bytes
2644 bytes
>
> @rax %Note: Object
> 2.13987 1.19509 7.65383 8.47814 @E
> /$fm 0 def
> 0 J 0 j 22.925585626053735 setmiterlimit
> [] 0 d 0 R 0 @G
> [ 1.00 0.00 1.00 0.00 0.00 null ] set_outline_color
> 0 0.56693 0.56693 0.00000 @w
> 2.37685 8.34094 m
> 3.00019 9.00057 9.00057 7.00044 7.37717 8.34094 C
> 6.00038 7.00044 6.00038 4.00025 7.37717 3.34063 C
> 6.00038 0.00000 1.00006 1.00006 2.37685 3.34063 C
> 4.00025 5.00031 2.00013 7.00044 2.37685 8.34094 C
> @c
> S
>
> Nie wiem co znaczy ten wiersz:
> 2.13987 1.19509 7.65383 8.47814 @E
To co pokazałeś wyżej jest fragmentem programu PostScriptowego. W
PostScripcie obowiązuje ONP (odwrotna notacja polska), a więc najpierw na
stos odkładane są parametry, a potem jakieś polecenie (komenda) pobiera
odpowiednią liczbę parametrów ze stosu i wykonuje na nich operację.
Część poleceń w powyższym fragmencie, to bezpośrednie polecenia PostScriptu
(np. setmiterlimit, def), inne natomiast są nazwami procedur (@E, @w, C, m,
itd.)
Wiersz
/$fm 0 def
przypisuje zmiennej $fm wartość zero. Analogicznie (gdzieś wyżej w
programie) powinno być:
/@E
{
% tu treść procedury
} def
Od tego momentu @E oznacza wywołanie tej procedury.
Pełną dokumentację PostScriptu znajdziesz tu:
www.adobe.com/products/postscript/pdfs/PLRM.pdf
Natomiast na mojej stronie znajdziesz wersję demo interpretera PostScriptu:
http://3n.com.pl/ftp/kombi_8_ps_demo_.exe
W tym interpreterze jest tryb pracy krokowej, można też podglądać słowniki,
zmienne i procedury. Co prawda jest to dość stara wersja (z 2009 roku), ale
może ułatwi Ci rozgryzanie tematu.
--
Stefan
http://foto.3n.com.pl/
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads