Post script

  • 211 views
Uploaded on

My presentation of PostScript from 2002. not much changed in the 10 years that passed.

My presentation of PostScript from 2002. not much changed in the 10 years that passed.

More in: Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
211
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. ‫יישומי גרפיקה וראיה ממוחשבת – ‪PostScript‬‬ ‫שפה לתיאור דף מודפס‬ ‫•‬ ‫מטפלת בשלשה סוגים של אובייקטים‬ ‫•‬ ‫גרפיים:‬ ‫טקסט‬ ‫•‬ ‫צורות גיאומטריות‬ ‫•‬ ‫תמונות מיובאות‬ ‫•‬ ‫ניתן לבצע בקלות טרנספורמציות‬ ‫•‬ ‫גרפיות של כל האובייקטים על גבי‬‫© ד”ר יעקב רובינוביץ‬ ‫הדף המודפס‬
  • 2. ‫יישומי גרפיקה וראיה ממוחשבת – ‪PostScript‬‬ ‫מודל יצירת התמונה ‪Imaging Model‬‬ ‫עקרונות של ציור בדיו / בנית דף‬ ‫מודפס‬ ‫הדף הנוכחי ‪ :Current Page‬דף ריק‬ ‫•‬ ‫שעליו התוכנית ממקמת סימונים של‬ ‫בתום הגדרת הדף‬ ‫האובייקטים.‬ ‫הנוכחי, הוא נשלח להדפסה.‬ ‫המסלול הנוכחי ‪ :Current Path‬מסלול‬ ‫•‬ ‫שבנוי מאובייקטים גרפיים. לאחר‬‫© ד”ר יעקב רובינוביץ‬ ‫הגדרתו, ניתן לצייר את המסלול, למלא‬
  • 3. ‫יישומי גרפיקה וראיה ממוחשבת – ‪PostScript‬‬ ‫מערכת קואורדינטות‬ ‫במדפסת: ‪Device Space‬‬ ‫•‬ ‫ייחודי לכל מדפסת ומדפסת‬ ‫בדף הנוכחי ( ‪)Current Page‬‬ ‫•‬ ‫מערכת קואורדינטות של המשתמש‬ ‫‪( User Coordinate System (user space‬‬ ‫ניתן לשנות את מרחב המשתמש ע" י:‬ ‫הזזה של ראשית הצירים ) (‪,Translation‬‬ ‫(‪,)Rotation‬‬ ‫סיבוב הצירים‬ ‫או שינוי קנה המידה (‪ )Scaling‬עבור כל ציר‬‫© ד”ר יעקב רובינוביץ‬ ‫בנפרד.‬
  • 4. ‫יישומי גרפיקה וראיה ממוחשבת – ‪PostScript‬‬ ‫עקרונות התכנות‬ ‫• אופרטורים גרפיים – כשליש מן‬ ‫השפה‬ ‫• מחסנית ‪ Stack‬בזיכרון לנתונים‬ ‫( מספרים, שרשראות תווים,‬ ‫אופרטורים)‬ ‫• ‪ Postfix Notation‬האופרטורים :‬ ‫שולפים את הנתונים מהמחסנית. לכן‬ ‫יש למקם את הנתונים במחסנית לפני‬ ‫הקריאה לאופרטור. התוצאה מוחזרת‬ ‫. למחסנית‬‫© ד”ר יעקב רובינוביץ‬ ‫סוגי הנתונים :‬
  • 5. ‫יישומי גרפיקה וראיה ממוחשבת – ‪PostScript‬‬ ‫המחסנית ופעולות אריטמטיות‬ ‫• המחסנית עובדת במשטר ‪LIFO‬‬ ‫• ניתן למקם במחסנית את כ ל סוגי‬ ‫הנתונים ( מספרים, שרשראות תווים,‬ ‫אופרטורים)‬ ‫21 3.6 –99‬ ‫–99‬ ‫3.6‬ ‫21‬ ‫‪mark‬‬ ‫)‪PS) [1 2] /Font mark‬‬ ‫/‪Font‬‬ ‫]1 2[‬ ‫)‪(PS‬‬‫© ד”ר יעקב רובינוביץ‬
  • 6. ‫יישומי גרפיקה וראיה ממוחשבת – ‪PostScript‬‬ ‫המחסנית ופעולות אריטמטיות‬ ‫האופרטורים ‪add, sub‬‬ ‫•‬ ‫5 72 ‪add‬‬ ‫5‬ ‫72‬ ‫‪add‬‬ ‫5‬ ‫72‬ ‫23‬ ‫5‬ ‫3.8 6.6 ‪sub‬‬ ‫3.8‬ ‫6.6‬ ‫‪sub‬‬ ‫3.8‬ ‫6.6‬ ‫7.1‬ ‫3.8‬‫© ד”ר יעקב רובינוביץ‬
  • 7. ‫יישומי גרפיקה וראיה ממוחשבת – ‪PostScript‬‬ ‫המחסנית ופעולות אריטמטיות‬ ‫31 81 526.1 >= ‪div‬‬ ‫52 3 8 >= ‪idiv‬‬ ‫21 01 2 >= ‪mod‬‬ ‫6 8 84 >= ‪mul‬‬ ‫-72 72 >= ‪neg‬‬ ‫‪…sqrt, exp, ceiling, sin‬‬‫© ד”ר יעקב רובינוביץ‬
  • 8. ‫יישומי גרפיקה וראיה ממוחשבת – ‪PostScript‬‬ ‫פעולות אריטמטיות מורכבות יותר‬ ‫6 + ( 3 : 8)‬ ‫3‬ ‫8‬ ‫‪div‬‬ ‫6‬ ‫‪add‬‬ ‫6‬ ‫3‬ ‫8‬ ‫‪div add‬‬ ‫573.6 .573 8‬ ‫3‬ ‫6‬ ‫6‬ ‫8 ) – 7 3 ‪(X‬‬ ‫‪8 7 3 mul sub‬‬ ‫‪7 3 mul 8 exch sub‬‬ ‫12‬ ‫8‬ ‫-31 12‬ ‫12‬ ‫8‬‫© ד”ר יעקב רובינוביץ‬
  • 9. ‫יישומי גרפיקה וראיה ממוחשבת – ‪PostScript‬‬ ‫פעולות מחסנית נוספות ‪Stack operators‬‬ ‫6 8 21 ‪=< _clear‬‬ ‫6 6 6 >= ‪dup‬‬ ‫71 8 71 >= ‪pop‬‬ ‫7 8 9 3 1 8 7 9 >= ‪roll‬‬ ‫7 8 9 3- 1 7 9 8 >= ‪roll‬‬‫© ד”ר יעקב רובינוביץ‬
  • 10. PostScript – ‫יישומי גרפיקה וראיה ממוחשבת‬ ‫עולות גרפיות - מערכת קואורדינטות‬ (User Coordinate System (user space points 72” = 1 432 newpath 144 72 moveto 144 432 lineto stroke showpage 72‫© ד”ר יעקב רובינוביץ‬ 0,0 144
  • 11. PostScript – ‫יישומי גרפיקה וראיה ממוחשבת‬ newpath ‫פעולות גרפיות‬ 72 216 moveto 144 72 rlineto 288 144 288 moveto 216 0 -216 rlineto stroke showpage 72 144‫© ד”ר יעקב רובינוביץ‬
  • 12. PostScript – ‫יישומי גרפיקה וראיה ממוחשבת‬ newpath ‫פעולות גרפיות‬ 270 360 moveto 0 72 rlineto 72 0 rlineto 0 -72 rlineto -72 0 rlineto 4 setlinewidth stroke showpage‫© ד”ר יעקב רובינוביץ‬
  • 13. PostScript – ‫יישומי גרפיקה וראיה ממוחשבת‬ newpath ‫פעולות גרפיות‬ 270 360 moveto 0 72 rlineto 72 0 rlineto 0 -72 rlineto closepath 4 setlinewidth stroke showpage‫© ד”ר יעקב רובינוביץ‬
  • 14. PostScript – ‫יישומי גרפיקה וראיה ממוחשבת‬ ‫פעולות גרפיות – מילוי צורות‬ newpath 270 360 moveto 0 72 rlineto 72 0 rlineto 0 -72 rlineto closepath fill showpage‫© ד”ר יעקב רובינוביץ‬
  • 15. PostScript – ‫יישומי גרפיקה וראיה ממוחשבת‬ ‫פעולות גרפיות – מילוי צורות‬ newpath 270 360 moveto 0 72 rlineto 72 0 rlineto 0 -72 rlineto closepath .5 setgray fill showpage‫© ד”ר יעקב רובינוביץ‬
  • 16. PostScript – ‫יישומי גרפיקה וראיה ממוחשבת‬ ‫פעולות גרפיות – מילוי צורות‬ newpath %Begin black box 252 324 moveto 0 72 rlineto 72 0 rlineto 0 -72 rlineto closepath newpath % light fill newpath % gray box 288 396 moveto 270 360 moveto 0 72 rlineto 0 72 rlineto 72 0 rlineto 72 0 rlineto 0 -72 rlineto 0 -72 rlineto closepath closepath .4 setgray fill .8 setgray fill showpage‫© ד”ר יעקב רובינוביץ‬
  • 17. PostScript – ‫יישומי גרפיקה וראיה ממוחשבת‬ Procedures and Variables ‫שגרות ומשתנים‬ Dictionaries Key Key’s value system dictionary Operator Action user dictionary Name Variable Name Procedure /ppi 72 def /inch {72 mul} def /inch {ppi mul} def 5 72 mul 5 inch‫© ד”ר יעקב רובינוביץ‬
  • 18. PostScript – ‫יישומי גרפיקה וראיה ממוחשבת‬ %---- Define procedures ----‫פרוצדורות – מילוי צורות‬ /ppi 72 def /inch {ppi mul} def /box %stack:x y => --- {newpath moveto 1 inch 0 rlineto 0 1 inch rlineto -1 inch 0 rlineto closepath} def /fillbox %stack: grayvalue => --- {setgray fill} def % ---------Main Program---------- 3.5 inch 4.5 inch box 0 fillbox 3.75 inch 5 inch box .4 fillbox 4 inch 5.5 inch box .8 fillbox showpage‫© ד”ר יעקב רובינוביץ‬
  • 19. PostScript – ‫יישומי גרפיקה וראיה ממוחשבת‬ ‫רפיקה – טרנספורמציות במערכת הקואורדינטות‬ /Times-Roman findfont 30 scalefont setfont /square %procedure to draw a { newpath % filled square 0 0 moveto 90 0 lineto %define a square path 90 90 lineto 0 90 lineto closepath fill %fill it 6 92 moveto % & label it (A Box) show } def square %do a square 200 250 translate %move coord. sys. square %do another square 200 250 translate %and move again square %do a third square showpage‫© ד”ר יעקב רובינוביץ‬
  • 20. PostScript – ‫יישומי גרפיקה וראיה ממוחשבת‬ ‫רפיקה – טרנספורמציות במערכת הקואורדינטות‬ square %do a square 300 150 translate %move coord sys. 60 rotate %and rotate it square %do it again . . . 300 150 translate 60 rotate square %do a third square showpage‫© ד”ר יעקב רובינוביץ‬
  • 21. PostScript – ‫יישומי גרפיקה וראיה ממוחשבת‬ ‫רפיקה – טרנספורמציות במערכת הקואורדינטות‬ square %do a square 100 100 translate 1.5 1.5 scale square 100 100 translate .75 1.25 scale %non-uniform scaling square showpage‫© ד”ר יעקב רובינוביץ‬
  • 22. PostScript – ‫יישומי גרפיקה וראיה ממוחשבת‬ )‫רפיקה – שמירת המצב הגרפי ( המסלול הנוכחי‬ /starside { 72 0 lineto %add line to path currentpoint translate %move origin -144 rotate } def %rotate coord. sys. /star %stack: x y { moveto currentpoint translate 4 {starside} repeat closepath gsave .5 setgray fill grestore % --main program---- stroke } def newpath 200 200 star showpage‫© ד”ר יעקב רובינוביץ‬
  • 23. PostScript – ‫יישומי גרפיקה וראיה ממוחשבת‬ )‫רפיקה – שמירת המצב הגרפי ( המסלול הנוכחי‬ /starside { 72 0 lineto %add line to path currentpoint translate %move origin -144 rotate } def %rotate coord. sys. /star %stack: x y { moveto currentpoint translate 4 {starside} repeat closepath gsave .5 setgray fill grestore % --main program---- stroke } def newpath 200 200 star showpage‫© ד”ר יעקב רובינוביץ‬