Post script
Upcoming SlideShare
Loading in...5
×
 

Post script

on

  • 413 views

Post script מצגת שלי על

Post script מצגת שלי על
לא הרבה השתנה בעשור שחלף

Statistics

Views

Total Views
413
Views on SlideShare
413
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Post script Post script Presentation Transcript

  • ‫יישומי גרפיקה וראיה ממוחשבת – ‪PostScript‬‬ ‫שפה לתיאור דף מודפס‬ ‫•‬ ‫מטפלת בשלשה סוגים של אובייקטים‬ ‫•‬ ‫גרפיים:‬ ‫• טקסט‬ ‫• צורות גיאומטריות‬ ‫• תמונות מיובאות‬ ‫ניתן לבצע בקלות טרנספורמציות‬ ‫•‬ ‫גרפיות של כל האובייקטים על גבי הדף‬‫© ד” ר יעקב רובינוביץ‬ ‫המודפס‬
  • ‫יישומי גרפיקה וראיה ממוחשבת – ‪PostScript‬‬ ‫מודל יצירת התמונה ‪Imaging Model‬‬ ‫עקרונות של ציור בדיו /בנית דף‬ ‫מודפס‬ ‫הדף הנוכחי ‪ :Current Page‬דף ריק‬ ‫•‬ ‫שעליו התוכנית ממקמת סימונים של‬ ‫בתום הגדרת הדף‬ ‫האובייקטים.‬ ‫הנוכחי, הוא נשלח להדפסה.‬ ‫המסלול הנוכחי ‪ :Current Path‬מסלול‬ ‫•‬ ‫שבנוי מאובייקטים גרפיים. לאחר‬‫© ד” ר יעקב רובינוביץ‬ ‫הגדרתו, ניתן לצייר את המסלול, למלא‬
  • ‫יישומי גרפיקה וראיה ממוחשבת – ‪PostScript‬‬ ‫מערכת קואורדינטות‬ ‫במדפסת: ‪Device Space‬‬ ‫•‬ ‫ייחודי לכל מדפסת ומדפסת‬ ‫בדף הנוכחי ( ‪)Current Page‬‬ ‫•‬ ‫מערכת קואורדינטות של המשתמש‬ ‫‪( User Coordinate System (user space‬‬ ‫ניתן לשנות את מרחב המשתמש ע" י:‬ ‫הזזה של ראשית הצירים ) (‪,Translation‬‬ ‫סיבוב הצירים (‪,)Rotation‬‬ ‫או שינוי קנה המידה (‪ )Scaling‬עבור כל ציר‬‫© ד” ר יעקב רובינוביץ‬ ‫בנפרד.‬
  • ‫יישומי גרפיקה וראיה ממוחשבת – ‪PostScript‬‬ ‫עקרונות התכנות‬ ‫• אופרטורים גרפיים – כשליש מן השפה‬ ‫• מחסנית ‪ Stack‬בזיכרון לנתונים‬ ‫(מספרים, שרשראות תווים,‬ ‫אופרטורים)‬ ‫• ‪ Postfix Notation‬האופרטורים :‬ ‫שולפים את הנתונים מהמחסנית. לכן‬ ‫יש למקם את הנתונים במחסנית לפני‬ ‫הקריאה לאופרטור. התוצאה מוחזרת‬ ‫. למחסנית‬ ‫• סוגי הנתונים :‬ ‫‪Data: reals, booleans, arrays, strings‬‬‫© ד” ר יעקב רובינוביץ‬
  • ‫יישומי גרפיקה וראיה ממוחשבת – ‪PostScript‬‬ ‫המחסנית ופעולות אריטמטיות‬ ‫• המחסנית עובדת במשטר ‪LIFO‬‬ ‫• ניתן למקם במחסנית את כ ל סוגי‬ ‫הנתונים (מספרים, שרשראות תווים,‬ ‫אופרטורים)‬ ‫21 3.6 –99‬ ‫–99‬ ‫3.6‬ ‫21‬ ‫‪mark‬‬ ‫)‪PS) [1 2] /Font mark‬‬ ‫/‪Font‬‬ ‫]1 2[‬ ‫)‪(PS‬‬‫© ד” ר יעקב רובינוביץ‬
  • ‫יישומי גרפיקה וראיה ממוחשבת – ‪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‬‫© ד” ר יעקב רובינוביץ‬
  • ‫יישומי גרפיקה וראיה ממוחשבת – ‪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‬‬‫© ד” ר יעקב רובינוביץ‬
  • ‫יישומי גרפיקה וראיה ממוחשבת – ‪PostScript‬‬ ‫פעולות אריטמטיות מורכבות יותר‬ ‫6 + 3 :8)‬ ‫(‬ ‫8 3‬ ‫‪div‬‬ ‫6‬ ‫‪add‬‬ ‫3 6‬ ‫8‬ ‫‪div add‬‬ ‫8‬ ‫573.6 573‬ ‫.‬ ‫3‬ ‫6‬ ‫6‬ ‫8) – 7 3 ‪(X‬‬ ‫‪8 7 3 mul sub‬‬ ‫‪7 3 mul 8 exch sub‬‬ ‫12‬ ‫8‬ ‫31 12‬ ‫-‬ ‫12‬ ‫8‬‫© ד” ר יעקב רובינוביץ‬
  • ‫יישומי גרפיקה וראיה ממוחשבת – ‪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‬‬‫© ד” ר יעקב רובינוביץ‬
  • PostScript – ‫יישומי גרפיקה וראיה ממוחשבת‬ ‫פעולות גרפיות - מערכת קואורדינטות‬ (User Coordinate System (user space points 72” = 1 432 newpath 144 72 moveto 144 432 lineto stroke showpage 72‫© ד” ר יעקב רובינוביץ‬ 0,0 144
  • PostScript – ‫יישומי גרפיקה וראיה ממוחשבת‬ newpath ‫פעולות גרפיות‬ 72 216 moveto 144 72 rlineto 288 144 288 moveto 216 0 -216 rlineto stroke showpage 72 144‫© ד” ר יעקב רובינוביץ‬
  • PostScript – ‫יישומי גרפיקה וראיה ממוחשבת‬ newpath ‫פעולות גרפיות‬ 270 360 moveto 0 72 rlineto 72 0 rlineto 0 -72 rlineto -72 0 rlineto 4 setlinewidth stroke showpage‫© ד” ר יעקב רובינוביץ‬
  • PostScript – ‫יישומי גרפיקה וראיה ממוחשבת‬ newpath ‫פעולות גרפיות‬ 270 360 moveto 0 72 rlineto 72 0 rlineto 0 -72 rlineto closepath 4 setlinewidth stroke showpage‫© ד” ר יעקב רובינוביץ‬
  • PostScript – ‫יישומי גרפיקה וראיה ממוחשבת‬ ‫פעולות גרפיות – מילוי צורות‬ newpath 270 360 moveto 0 72 rlineto 72 0 rlineto 0 -72 rlineto closepath fill showpage‫© ד” ר יעקב רובינוביץ‬
  • PostScript – ‫יישומי גרפיקה וראיה ממוחשבת‬ ‫פעולות גרפיות – מילוי צורות‬ newpath 270 360 moveto 0 72 rlineto 72 0 rlineto 0 -72 rlineto closepath .5 setgray fill showpage‫© ד” ר יעקב רובינוביץ‬
  • 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‫© ד” ר יעקב רובינוביץ‬
  • 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‫© ד” ר יעקב רובינוביץ‬
  • 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‫© ד” ר יעקב רובינוביץ‬
  • 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‫© ד” ר יעקב רובינוביץ‬
  • 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‫© ד” ר יעקב רובינוביץ‬
  • 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‫© ד” ר יעקב רובינוביץ‬
  • 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‫© ד” ר יעקב רובינוביץ‬
  • 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‫© ד” ר יעקב רובינוביץ‬