Java AWT Event listener Graphics n n n

  • Slides: 37
Download presentation

 היום Java AWT Event listener Graphics n n n נקודה בתוך פוליגון Crossing

היום Java AWT Event listener Graphics n n n נקודה בתוך פוליגון Crossing number Winding number n n מילוי פוליגון בצבע Flood. Fill Scan conversion 9/9/2021 n n 3

AWT (Abstract window Toolkit) אובייקט היררכיה רכיבים שונים של AWT 9/9/2021 Label Button מיכל

AWT (Abstract window Toolkit) אובייקט היררכיה רכיבים שונים של AWT 9/9/2021 Label Button מיכל Canvas Swing Panel Window Applet Frame 5

AWT (Abstract window Toolkit) הגדרת מיכל ורכיבים import java. awt. *; public static void

AWT (Abstract window Toolkit) הגדרת מיכל ורכיבים import java. awt. *; public static void main(String[] args){ Frame My. Frame = new Frame("ex 1"); Canvas my. Canvas =new Canvas(); My. Frame. add(my. Canvas); My. Frame. pack(); My. Frame. set. Visible(true); } 9/9/2021 8

AWT (Abstract window Toolkit) לחלון Event Handler הגדרת החלון שלנו צריך להיסגר n נוסיף

AWT (Abstract window Toolkit) לחלון Event Handler הגדרת החלון שלנו צריך להיסגר n נוסיף קריאה למחלקות n import java. awt. event. Window. Adapter; import java. awt. event. Window. Event; Window. Adapter Wa =new Window. Adapter(){ public void window. Closing (){ System. exit(0); } }; My. Frame. add. Window. Listener(Wa); מממש בשבילנו את כל מחלקות windows. Adapter : הערה Window. Listener האבסטרקטיות של 9/9/2021 9

AWT (Abstract window Toolkit) class my. Canvas extends Canvas implements Mouse. Listener{ boolean moshe;

AWT (Abstract window Toolkit) class my. Canvas extends Canvas implements Mouse. Listener{ boolean moshe; public my. Canvas() { set. Size(600, 400); add. Mouse. Listener(this); } public void paint(Graphics g){ g. draw. Line(10, 100, 100); if(moshe) g. draw. String("Moses is in the house", 100); } public void mouse. Clicked(Mouse. Event arg 0) { moshe=true; repaint(); } … …. . } 9/9/2021 11

AWT (Abstract window Toolkit) Graphics g מקבלת Paint המתודה Graphics פונקציות שימושיות ב n

AWT (Abstract window Toolkit) Graphics g מקבלת Paint המתודה Graphics פונקציות שימושיות ב n n n n 9/9/2021 g. draw. Line (x, y, x 1, y 1); g. draw. String(“Msg", x, y); g. draw. Polyline( int[] x, int[] y, n. Points); g. draw. Polygon (Polygon p); g. draw. Rect(x 0, y 0, x 1, y 1); g. fill. Rect (x 0, y 0, width, height); 12

 נקודה בתוך פוליגון Crossing number 9/9/2021 Winding number 15

נקודה בתוך פוליגון Crossing number 9/9/2021 Winding number 15

 נקודה בתוך פוליגון Odd parity rule VS. Non Zero rule Odd parity rule

נקודה בתוך פוליגון Odd parity rule VS. Non Zero rule Odd parity rule בחציית פאה 1+ רגיל CN Cn=2 even out. Side Non zero rule cn = -2 inside 9/9/2021 1+ בחצית פאה בכיוון מעלה 1 - בחציית פאה בכיוון מטה 19

 נקודה בתוך פוליגון Winding number 23 9/9/2021

נקודה בתוך פוליגון Winding number 23 9/9/2021

 נקודה בתוך פוליגון Winding number 24 9/9/2021

נקודה בתוך פוליגון Winding number 24 9/9/2021

 נקודה בתוך פוליגון האלגוריתם Cn_poly (Point pn , Polygon P) { int cn=0;

נקודה בתוך פוליגון האלגוריתם Cn_poly (Point pn , Polygon P) { int cn=0; //crossing number for( each edge E in polygon) { if( E[i] crosses upword or E[i] crosses downward) { if( Pn. x < intersect_x of E[i] with P. y) ++cn; } } Return cn; } ? איך מזהים חציה בכיוון מעלה או מטה ( איך נכלול נקודות בחציה? )איך נממש את החוקים 9/9/2021 25

 מילוי פוליגון Flood. Fill : אלגוריתם Flood. Fill(x, y) { If (on. Boundary(x,

מילוי פוליגון Flood. Fill : אלגוריתם Flood. Fill(x, y) { If (on. Boundary(x, y) or Colored(x, y)) return Else { Put. Pixel(x, y, c); Flood. Fill(x+1, y); Flood. Fill(x, y+1); Flood. Fill(x, y-1); Flood. Fill(x-1, y); } } 9/9/2021 29

 מילוי פוליגון הפאות של הפוליגון Edge Label a b c d Coordinates y

מילוי פוליגון הפאות של הפוליגון Edge Label a b c d Coordinates y 1 (1 , 1) to (4 , 7) 1 (7 , 2) to (4 , 7) 2 (7 , 2) to (4 , 4) 2 (1 , 1) to (4 , 4) 1 Structure (7 , 1 , 0. 5) (7 , -0. 6) (4 , 7 , -1. 5) (4 , 1) ET- טבלת ה y 1 1 2 9/9/2021 Sequence of Edges (7, 1, 0. 5), (4, 1, 1) (7, 7, -0. 6), (4, 7, -1. 5) 35

 מילוי פוליגון Line Active Edge Table Spans 0 empty 1 (7 , 1

מילוי פוליגון Line Active Edge Table Spans 0 empty 1 (7 , 1 , 0. 5), (4 , 1) 1 to 1 2 (7 , 1. 5 , 0. 5), (4 , 2 , 1), (4 , 7, -1. 5), (7, 7, -0. 6) 1. 5 to 2, 7 to 7 3 (7, 2. 0 , 0. 5), (4 , 3 , 1), (4 , 5. 5 , -1. 5), (7 , 6. 4 , -0. 6) 2. 0 to 3, 5. 5 to 6. 4 4 (7 , 2. 5 , 0. 5), (7 , 5. 8 , -0. 6) 2. 5 to 5. 8 5 (7 , 3. 0 , 0. 5), (7 , 5. 2 , -0. 6) 3. 0 to 5. 2 6 (7 , 3. 5 , 0. 5), (7 , 4. 6 , -0. 6) 3. 5 to 4. 6 7 empty 8 empty y 1 1 2 9/9/2021 Sequence of Edges (7 , 1 , 0. 5), (4 , 1) (7 , 7, -0. 6), (4, 7, -1. 5) 36

 שאלות? 37 9/9/2021

שאלות? 37 9/9/2021