рджрд┐рдП рдЧрдП рдкреИрдЯрд░реНрди рдХреЗ рд╕рд╛рде рдПрдХ рдЦреАрдВрдЪреА рд╣реБрдИ 2d рдмрд╣реБрднреБрдЬ рдХреА рд╕рдорд╛рдирддрд╛ рдХрд╛ рдкреНрд░рддрд┐рд╢рдд рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛

рдорд┐рддреНрд░реЛрдВ рдХреЛ рдирдорд╕реНрдХрд╛рд░ред

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдореЛрдмрд╛рдЗрд▓ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдЧреЗрдо рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рддрдХрдиреАрдХ рдмрд╣реБрдд рддреЗрдЬреА рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд░рд╣реА рд╣реИред рдЦреЗрд▓реЛрдВ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рдЗрдВрдЬрдиреЛрдВ рдФрд░ рднрд╛рд╖рд╛рдУрдВ рдкрд░ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рдо рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рднрд╛рд╖рд╛ / рдЗрдВрдЬрди рдмреЗрд╣рддрд░ рдпрд╛ рдмрджрддрд░ рдХреНрдпреЛрдВ рд╣реИ (рдпрд╣ рдирд╣реАрдВ рд╣реИ?)ред рдбреЗрд╡рд▓рдкрд░реНрд╕ рдирдП рджрд┐рд▓рдЪрд╕реНрдк рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЧреЗрдо рдирд┐рдпрдВрддреНрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЖрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдПрдХ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЦреЗрд▓ рдореЗрдВ рдЬреНрдпрд╛рдорд┐рддреАрдп рддрддреНрд╡реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬреИрд╕реЗ рдХрд┐ рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЦреЗрд▓ рдмрд╛рдЬреАрдЧрд░реАред



рдореИрдВ рдЖрдкрдХреЛ рдЦреАрдВрдЪреА рдЧрдИ 2d рдЖрдХреГрддрд┐рдпреЛрдВ рдХреЗ рдирд┐рд░реНрдзрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рдердо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред рдореИрдВрдиреЗ рдПрдХреНрд╢рдирд╕реНрдХреНрд░рд┐рдкреНрдЯ 3.0 рдореЗрдВ рдЗрдВрдЬрди рдХреЗ рдЕрдкрдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд▓рд┐рдЦрд╛ред рдпрджрд┐ рд╡рд╛рдВрдЫрд┐рдд рд╣реИ (рдФрд░ рдЬреНрдпрд╛рдорд┐рддрд┐ рдХреЗ рдмреБрдирд┐рдпрд╛рджреА рдЬреНрдЮрд╛рди рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐), рддреЛ рдЗрд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕рд▓рд┐рдП, рд╣рдореЗрдВ рд╣рд╛рде рд╕реЗ рдЦреАрдВрдЪреА рдЧрдИ рдЖрдХреГрддрд┐ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдирддрд╛ рдХрд╛ рдкреНрд░рддрд┐рд╢рдд рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:



рдмреБрдирд┐рдпрд╛рджреА рдЬреНрдпрд╛рдорд┐рддрд┐


рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рд╡рд┐рдорд╛рди рдкрд░ рдмреБрдирд┐рдпрд╛рджреА рдЬреНрдпрд╛рдорд┐рддрд┐ рд╕реВрддреНрд░ рдЪрд╛рд╣рд┐рдПред

[F1] рдЦрдВрдб рд▓рдВрдмрд╛рдИ:

len = sqrt((x2-x1)^2 + (y2-y1)^2); 


[F2] рджрд┐рд╢рд╛ рд╡реИрдХреНрдЯрд░ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рд░реЗрдЦрд╛:

 //     directX = x2-x1; directY = y2-y1; //      normaleX = -directY; normaleY = directX; 


[F3] рд╡рд┐рдорд╛рди рдореЗрдВ рдПрдХ рд░реЗрдЦрд╛ рдХрд╛ рд╕рдореАрдХрд░рдг Ax + By + C = 0

рд░реЗрдЦрд╛ рдХреЗ рд╕рдореАрдХрд░рдг рд╕реЗ рдЧреБрдгрд╛рдВрдХ A, B рдФрд░ C рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рд░реЗрдЦрд╛ рдХреЗ рджреЛ рдмрд┐рдВрджреБрдУрдВ рдХреЛ рдЬрд╛рдирдХрд░ рдЖрдк рдпрд╣ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
 A = -normaleX; B = -normaleY; C = -A*x1 - B*y1; 


[F4] рдмрд┐рдВрджреБ рдХреА рд╕реНрдерд┐рддрд┐ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╕реАрдзреА рд╣реИред

рд╣рдо рдорд╛рди рд▓реЗрддреЗ рд╣реИрдВ рдХрд┐ рдмрд┐рдВрджреБ рд░реЗрдЦрд╛ рд╕реЗ рдКрдкрд░ рд╣реИ рдпрджрд┐ рд╕реВрддреНрд░ + + + C рдорд╛рдиреЛрдВ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╕рдордп рд╢реВрдиреНрдп рд╕реЗ рдЕрдзрд┐рдХ рдорд╛рди рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рдорд╛рди рд╢реВрдиреНрдп рд╣реИ, рддреЛ рдмрд┐рдВрджреБ рдЗрд╕ рд░реЗрдЦрд╛ рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдЖрддрд╛ рд╣реИред рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рд░реЗрдЦрд╛ рдХрд╛ рдкрд╣рд▓рд╛ рдмрд┐рдВрджреБ рд╕реНрдХреНрд░реАрди рдХреЗ рдмрд╛рдИрдВ рдУрд░ рд╕реНрдерд┐рдд рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛ рджрд╛рдИрдВ рдУрд░ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП, рдЗрд╕ рдкрдВрдХреНрддрд┐ рдХреЗ рдКрдкрд░ (рд╕реНрдХреНрд░реАрди рдХреЗ рд╢реАрд░реНрд╖ рдкрд░) рдЭреВрда рдмреЛрд▓рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдмрд┐рдВрджреБ рд╕рдореАрдХрд░рдг рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╕рдордп рдПрдХ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдорд╛рди рджреЗрдВрдЧреЗред рдпрд╣ рд╕рдордЭрдирд╛ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдкрд╣рд▓рд╛ (рдкреНрд░рд╛рд░рдВрднрд┐рдХ) рдмрд┐рдВрджреБ рдХрд╣рд╛рдВ рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛ (рдЕрдВрддрд┐рдо) рдмрд┐рдВрджреБ рдХрд╣рд╛рдВ рд╣реИ: рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрдВрдХ рд╣реИрдВ p = {x, y} рдФрд░ q = {x, y} , рдФрд░ рдЖрдк рд╕реВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджрд┐рд╢рд╛ (рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рд╡реЗрдХреНрдЯрд░) рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВред :

 directX = qx-px; directY = qy-py; 

, рдлрд┐рд░ рдкрд╣рд▓рд╛ (рдкреНрд░рд╛рд░рдВрднрд┐рдХ) рдмрд┐рдВрджреБ p рд╣реЛрдЧрд╛, рдФрд░ рджреВрд╕рд░рд╛ (рдЕрдВрддрд┐рдо) рдмрд┐рдВрджреБ q рд╣реЛрдЧрд╛ред

[F5] рдПрдХ рдЦрдВрдб рдХреЗ рдПрдХ рдмрд┐рдВрджреБ рдХреЛ рдорд╛рдирддреЗ рд╣реБрдП

рдпрджрд┐ рдпрд╣ рдЗрди рдмрд┐рдВрджреБрдУрдВ рд╕реЗ рд╣реЛрдХрд░ рдЧреБрдЬрд░рдиреЗ рд╡рд╛рд▓реА рд░реЗрдЦрд╛ рдкрд░ рд╕реНрдерд┐рдд рд╣реИ, рдФрд░ рдпрджрд┐ рдпрд╣ рдЦрдВрдб рдХреЗ рджреЛ рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдмреАрдЪ рд╕реНрдерд┐рдд рд╣реИ, рддреЛ рдмрд┐рдВрджреБ o рдЦрдВрдб рдЦрдВрдб pq рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рд╕рджрд╕реНрдпрддрд╛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

- рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ рдХрд┐ рдмрд┐рдВрджреБ рд░реЗрдЦрд╛ рдкрд░ рд╕реНрдерд┐рдд рд╣реИ ( [F4] )
- рд╣рдо рд╕реЗрдЧрдореЗрдВрдЯ ( [F4] ) рд╕реЗрд╢рди рдФрд░ oq рдХреА рд▓рдВрдмрд╛рдИ рдкрд╛рддреЗ рд╣реИрдВ, рдЕрдЧрд░ рдЗрдирдореЗрдВ рд╕реЗ рдХрдо рд╕реЗ рдХрдо рдПрдХ рд╡реИрд▓реНрдпреВ рд╕реЗрдЧрдореЗрдВрдЯ pq рдХреА рд▓рдВрдмрд╛рдИ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рддреЛ рдкреЙрдЗрдВрдЯ o рд╕реЗрдЧрдореЗрдВрдЯ pq рдХреЗ рдЕрдВрджрд░ рдирд╣реАрдВ рд╣реИред

[рдПрдл рем] рдЕрд╕реАрдо рд░реВрдк рд╕реЗ рд▓рдВрдмреА рд▓рд╛рдЗрдиреЛрдВ рдХрд╛ рдЪреМрд░рд╛рд╣рд╛ рдмрд┐рдВрджреБ

 // ,     l1 = {p1,p2}; l2 = {p1,p2}; // d = (l2.p2.y-l2.p1.y)*(l1.p2.x-l1.p1._x) - (l2.p2.x-l2.p1.x)*(l1.p2.y-l1.p1.y); a = (l2.p2.x-l2.p1.x)*(l1.p1.y-l2.p1._y) - (l2.p2.y-l2.p1.y)*(l1.p1.x-l2.p1.x) //   x0 = l1.p1.x + a*(l1.p2.x-l1.p1.x)/d y0 = l1.p1.y + a*(l1.p2.y-l1.p1.y)/d 

рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдпрджрд┐ d = 0 рд╣реИ , рддреЛ рд░реЗрдЦрд╛рдПрдВ рд╕рдорд╛рдирд╛рдВрддрд░ рд╣реИрдВред

[F7] рджреЛ рдЦрдВрдбреЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдЪреНрдЫреЗрджрди рдмрд┐рдВрджреБред рдПрдХ рдЕрдирдВрдд рд░реЗрдЦрд╛ рдФрд░ рдПрдХ рд░реЗрдЦрд╛ рдЦрдВрдб рдХрд╛ рдкреНрд░рддрд┐рдЪреНрдЫреЗрджрди рдмрд┐рдВрджреБред

рдпрджрд┐ рджреЛ рдЕрдВрдд рдЦрдВрдбреЛрдВ рдпрд╛ рдПрдХ рдЕрдирдВрдд рд░реЗрдЦрд╛ рдФрд░ рдЕрдВрдд рдЦрдВрдб рдХреА рдЬрд╛рдВрдЪ рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рджреЛ рдЕрдирдВрдд рд░реЗрдЦрд╛рдУрдВ ( [F6] ) рдХреЗ рдкреНрд░рддрд┐рдЪреНрдЫреЗрджрди рдмрд┐рдВрджреБ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЬрд╛рдВрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рдмрд┐рдВрджреБ рд╕рднреА рд╢рд╛рдорд┐рд▓ рдЦрдВрдбреЛрдВ ( [F5] ) рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ рдпрд╛ рдирд╣реАрдВред

рддреНрд░рд┐рднреБрдЬ - рд╕рдм рдХреБрдЫ рдХреЗ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдкреНрд░рд╛рдердорд┐рдХ рдмрд╣реБрднреБрдЬ

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдПрдХ рддреНрд░рд┐рднреБрдЬ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдмрд╣реБрднреБрдЬ рд╣реИред рдмрд╣реБрднреБрдЬ рдХреА рдХрдИ рдЧрдгрдирд╛ рддреНрд░рд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реА рд╣реБрдИ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЙрдирдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рд╕реВрддреНрд░ рджреВрдВрдЧрд╛ред

[F8] рддреНрд░рд┐рдХреЛрдг рдХрд╛ рдЬреНрдпрд╛рдорд┐рддреАрдп рдХреЗрдВрджреНрд░

рддреНрд░рд┐рдХреЛрдг рдХрд╛ рдХреЗрдВрджреНрд░ (рдпрд╛ рд╕реЗрдВрдЯреНрд░реЛрдЗрдб ) рддреНрд░рд┐рдХреЛрдг рдХреЗ рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХрд╛ рдЕрдВрдХрдЧрдгрд┐рддреАрдп рдорд╛рдзреНрдп рд╣реИред рдпрд╣ рд╕реВрддреНрд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
 x0 = (a.x+b.x+cx)/3; y0 = (a.y+b.y+cy)/3; 


[F9] рддреНрд░рд┐рднреБрдЬ рдХрд╛ рдХреНрд╖реЗрддреНрд░рдлрд▓

рддреНрд░рд┐рднреБрдЬ рдХреЗ рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдХреЗрд╡рд▓ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЛ рдЬрд╛рдирддреЗ рд╣реБрдП, рдЖрдк рдЗрди рдкрдХреНрд╖реЛрдВ рдХреЛ рдХреЛрдг рдХреЗ рд╕рд╛рдЗрди рджреНрд╡рд╛рд░рд╛ рджреЛ рдкрдХреНрд╖реЛрдВ рдХреА рд▓рдВрдмрд╛рдИ рдХреЛ рдЧреБрдгрд╛ рдХрд░рдХреЗ рдЗрд╕рдХрд╛ рдХреНрд╖реЗрддреНрд░рдлрд▓ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

[F10] рд╡рд┐рдорд╛рди рдкрд░ рдмрд╣реБрднреБрдЬ

рд╡рд┐рдорд╛рди рдореЗрдВ рдмрд╣реБрднреБрдЬ P рдХреЛ рд╡рд░реНрдЯрд┐рдХрд▓ рдХреЗ рд╕реЗрдЯ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: v1, v2, ..., vn , рдЬрд╣рд╛рдВ n рд╡рд░реНрдЯрд┐рд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИред рдмрд╣реБрднреБрдЬ рдореЗрдВ рдХрд┐рдирд╛рд░реЗ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдЖрд╕рдиреНрди рдХреЛрдиреЗ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдмрдирддреЗ рд╣реИрдВ: e1 = {v1, v2}, e2 = {v2, v3}, ..., en = {vn, v1} ред

[F11] рдмрд╣реБрднреБрдЬ рдмрд╛рдЙрдВрдбрд┐рдВрдЧ рдмреЙрдХреНрд╕

рдмрд╛рдЙрдВрдбрд┐рдВрдЧ рдмреЙрдХреНрд╕ рд╕реАрдорд╛ = {x, y, рдЪреМрдбрд╝рд╛рдИ, рдКрдВрдЪрд╛рдИ} рдСрдмреНрдЬреЗрдХреНрдЯ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд╣рд╛рдВ x рдФрд░ y рдмрд╣реБрднреБрдЬ рдХреЗ рдХреЛрдиреЗ рдХреЗ рдиреНрдпреВрдирддрдо рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд╣реИрдВ, рдФрд░ рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдКрдВрдЪрд╛рдИ рдХреЗ рдмреАрдЪ рдХреЗ рдЕрдзрд┐рдХрддрдо рдФрд░ рдиреНрдпреВрдирддрдо рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рд╣реИрдВред

[F12] рдмрд╣реБрднреБрдЬ рдХреЗрдВрджреНрд░

рдХреЗрдВрджреНрд░ рдХрд╛ рдЖрдо рддреМрд░ рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЕрд╕реНрддрд┐рддреНрд╡ рд╣реЛрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдмрд┐рдВрджреБ рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдХреЗрдВрджреНрд░ рдпрд╛ рдХреНрд╖реЗрддреНрд░ рдХреЗ рдКрдкрд░ рджреНрд░рд╡реНрдпрдорд╛рди рдХрд╛ рдХреЗрдВрджреНрд░ ... рд╣рдо рджреНрд░рд╡реНрдпрдорд╛рди рдХреЗ рдХреЗрдВрджреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕рдХреА рдЧрдгрдирд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдПрд▓реНрдЧреЛрд░рд┐рдердо рджреНрд╡рд╛рд░рд╛ рдХреА рдЬрд╛рддреА рд╣реИред рдЖрдкрдХреЛ рдмрд╣реБрднреБрдЬ рдХреЛ рддреНрд░рд┐рднреБрдЬреЛрдВ рдореЗрдВ рддреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЪрд╛рд╣реЗ рдЬреЛ рднреА рд╣реЛ, рдЖрдк рдХреЗрд╡рд▓ рдХреНрд░рдо рдореЗрдВ рдХреЛрдиреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо рддреНрд░рд┐рднреБрдЬреЛрдВ рдФрд░ рдЙрдирдХреЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рдХреЗрдВрджреНрд░реЛрдВ рдХреЗ рдЙрддреНрдкрд╛рджреЛрдВ рдХрд╛ рдпреЛрдЧ рдкрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рд░рд╛рд╢рд┐ рдХреЛ рдмрд╣реБрднреБрдЬ рдХреЗ рдХреБрд▓ рдХреНрд╖реЗрддреНрд░рдлрд▓ рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдмрд╣реБрднреБрдЬ рдХреНрд╖реЗрддреНрд░ рдХреА рдЧрдгрдирд╛ рдЙрд╕рдХреЗ рддреНрд░рд┐рднреБрдЬреЛрдВ рдХреЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рдпреЛрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдХреА рдЬрд╛рддреА рд╣реИред
 //    var triangles:Array = ... ; //   var centerX:Number = 0; var centerY:Number = 0; //   var polygonSquare:Number = 0; // for (i=0; i<triangles.length; i++) { var triangle = triangles[i]; centerX += triangle.center.x*triangle.square; centerY += triangle.center.y*triangle.square; polygonSquare += triangle.square; } centerX /= polygonSquare; centerY /= polygonSquare; 


[F13] рдмрд╣реБрднреБрдЬ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдмрд┐рдВрджреБ рдХреА рд╕реНрдерд┐рддрд┐

рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдмрд╣реБрднреБрдЬ рдХреЗ рдЕрдВрджрд░ рдПрдХ рдмрд┐рдВрджреБ рд╕реНрдерд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдЗрд╕ рдмрд┐рдВрджреБ рдХреЛ "рдиреАрдЪреЗ" рд╣реИ , рдЬрдм рд╕рднреА рдХрд┐рдирд╛рд░реЛрдВ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдШрдбрд╝реА рдХреА рджрд┐рд╢рд╛ рдореЗрдВред рд░реЗрдЦрд╛ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдмрд┐рдВрджреБ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕реВрддреНрд░ F4 рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдмрд┐рдВрджреБ рд╕рднреА рдХрд┐рдирд╛рд░реЛрдВ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ "рдКрдкрд░" рд╣реИ , рддреЛ рдпрд╣ рдмрд╣реБрднреБрдЬ рдХреЗ рдмрд╛рд╣рд░ рд╕реНрдерд┐рдд рд╣реИ

[F14] рдПрдХ рдЕрдирдВрдд рд░реЗрдЦрд╛ рдФрд░ рдПрдХ рдмрд╣реБрднреБрдЬ рдХрд╛ рдЕрдВрддрд░

рдмрд╣реБрднреБрдЬ рдкреА рдХреЗ рд╕рд╛рде рд▓рд╛рдЗрди рдПрд▓ рдХреЗ рдЪреМрд░рд╛рд╣реЗ рдХреЗ рдмрд┐рдВрджреБрдУрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рднреА рдЦрдВрдбреЛрдВ e1, e2 ... рд╕реВрддреНрд░ [F7] рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд╛рдЗрди l рдХреЗ рдкреНрд░рддрд┐рдЪреНрдЫреЗрджрди рдХреЗ рд╕рднреА рдмрд┐рдВрджреБрдУрдВ рдХреЛ рдЦреЛрдЬрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред

рдЖрдХреГрддрд┐рдпреЛрдВ рдХреА рд╕рдорд╛рдирддрд╛ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг


рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреНрд░рд╡реЗрд╢ рджреНрд╡рд╛рд░ рдкрд░ рдХреНрдпрд╛ рд╣реИ? рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдореВрд▓ рдбреНрд░рд╛рдЗрдВрдЧ рд╣реИ - рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдмрд╣реБрднреБрдЬ рдХреЛ рд╡рд░реНрдЯрд┐рдХрд▓ v1, v2, ..., vn рдХреЗ рд╕реЗрдЯ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдбреНрд░реЙ рдмрд╣реБрднреБрдЬ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдбреНрд░реЙрдЗрдВрдЧ рдкреНрд░реЛрд╕реЗрд╕ рдХреЗ рджреМрд░рд╛рди рдкреНрд░рд╛рдкреНрдд рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рд╕реЗ рдмрдирд╛ рд╣реИред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЖрдк рдЙрдирдХреА рддреБрд▓рдирд╛ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ, рдбреНрд░рд╛ рдмрд╣реБрднреБрдЬ рдХреЛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрд╣реБрднреБрдЬ рдХреЗ рд▓рд┐рдП "рдХрдо" рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╛рдиреА рдпрд╣ рд╕рдВрдкреАрдбрд╝рди (рд╕реНрдХреЗрд▓) рдФрд░ рд╡рд┐рд╕реНрдерд╛рдкрди (рдЯреНрд░рд╛рдВрд╕рд▓реЗрд╢рди) рдХреЗ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ рддрд╛рдХрд┐ рдмрд╣реБрднреБрдЬ рдХреЗ рдХреЗрдВрджреНрд░ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВ рдФрд░ рдбреНрд░реЙ рдмрд╣реБрднреБрдЬ рдХреЗ рдмрд╛рдЙрдВрдбрд┐рдВрдЧ рдмреЙрдХреНрд╕ рдХреЗ рдЕрдзрд┐рдХрддрдо рд╕рдорд╛рди рдЖрдпрд╛рдо (рд╕реАрдорд╛ рдФрд░ рдмреИрдВрдбрд╡рд┐рдбреНрде) рд╣реИрдВред рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд╕рд╛рде:



рдмрд╣реБрднреБрдЬ рдХрдореА рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо:
 //   var template = ... ; //   var draw = ... ; //    var scaleW:Number = template.bounds.width/draw.bounds.width; //    var scaleH:Number = template.bounds.height/draw.bounds.height; //    var scale:Number = (scaleW+scaleH)/2; //    draw.matrixScale(scale); // //   X var dx:Number = draw.centerWeight.x-template.centerWeight.x; //   Y var dy:Number = draw.centerWeight.y-template.centerWeight.y; //    draw.matrixTranslate(dx, dy); 

рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдХреЗрдВрджреНрд░-рд╡реЗ рдмрд╣реБрднреБрдЬ рдХреЗ рджреНрд░рд╡реНрдпрдорд╛рди рдХрд╛ рдХреЗрдВрджреНрд░ рд╣реИред

рдЖрдк рджреЛ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рджреНрд╡рд╛рд░рд╛ рдЖрдВрдХрдбрд╝реЛрдВ рдХреА рд╕рдорд╛рдирддрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЪрд▓реЛ рдЙрдиреНрд╣реЗрдВ рд░реЗрдбрд┐рдпрд▓ рдФрд░ рдбрд╛рдпрдореЗрдВрд╢рдирд▓ рдХрд╣рддреЗ рд╣реИрдВред рдЪрд▓реЛ рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ рд▓реЗ рдЬрд╛рдПрдВред


рд░реЗрдбрд┐рдпрд▓ рдПрд▓реНрдЧреЛрд░рд┐рджрдо


рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдмрд╣реБрднреБрдЬ рдХреЛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдлрд┐рдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЙрдирдХреА рддреБрд▓рдирд╛ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд░реЗрдбрд┐рдпрд▓ рд╡рд┐рдзрд┐ рдХрд╛ рд╕рд╛рд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИред рд╣рдо рдХреЗрдВрджреНрд░ рд╕реЗ рдПрдХ рдХрд┐рд░рдг рдЬрд╛рд░реА рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдмрд╣реБрднреБрдЬ рдХреЗ рд╕рд╛рде рдЗрд╕ рдХрд┐рд░рдг рдХреЗ рдкреНрд░рддрд┐рдЪреНрдЫреЗрджрди рдмрд┐рдВрджреБрдУрдВ рдХреЛ рдкрд╛рддреЗ рд╣реИрдВред рдЪреМрд░рд╛рд╣реЗ рдХреЗ рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдмреАрдЪ рдХреА рджреВрд░реА рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВ рдФрд░ рдЗрд╕реЗ рдпрд╛рдж рд░рдЦреЗрдВред рдЕрдЧрд▓рд╛, рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХреЛрдг рдХрджрдо рдХреЗ рд╕рд╛рде рдПрдХ рдирдИ рдХрд┐рд░рдг рдЦреАрдВрдЪреЗрдВ, рдФрд░ рдЪреМрд░рд╛рд╣реЗ рдХреЗ рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдмреАрдЪ рдХреА рджреВрд░реА рдХрд╛ рднреА рдкрддрд╛ рд▓рдЧрд╛рдПрдВред рдЕрдВрдд рдореЗрдВ рдЪреМрд░рд╛рд╣реЗ рдХреЗ рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдмреАрдЪ рдкреНрд░рд╛рдкреНрдд рджреВрд░реА рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реБрдП, рд╣рдо рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдореВрд▓реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдорд╛рди рдЬрд┐рддрдирд╛ рдХрдо рд╣реЛрдЧрд╛, рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЗ рдкрд╛рд╕ рдЦреАрдВрдЪрд╛ рдЧрдпрд╛ рдЖрдВрдХрдбрд╝рд╛ рдЙрддрдирд╛ рд╣реА рдХрд░реАрдм рд╣реЛрдЧрд╛ред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЫрд╡рд┐ рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:



рдЬрд┐рддрдиреА рдЕрдзрд┐рдХ рдХрд┐рд░рдгреЗрдВ рдирд┐рдХрд▓рддреА рд╣реИрдВ, рд╕рддреНрдпрд╛рдкрди рдЙрддрдирд╛ рд╣реА рд╕рдЯреАрдХ рд╣реЛрдЧрд╛ред рдЖрдк рдпрд╣ рднреА рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдмрд╣реБрднреБрдЬ рдХреЗ рд╕рд╛рде рдмреАрдо рдХреЗ рдкреНрд░рддрд┐рдЪреНрдЫреЗрджрди рдХреЗ рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдмреАрдЪ рдХреА рдФрд╕рдд рд▓рдВрдмрд╛рдИ рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрд╣реБрднреБрдЬ рдХреЗ рдмрд╛рдЙрдВрдбрд┐рдВрдЧ рдмреЙрдХреНрд╕ рдХреА рдЪреМрдбрд╝рд╛рдИ / рдКрдВрдЪрд╛рдИ (рдпрд╛ рдЕрдВрдХрдЧрдгрд┐рддреАрдп рдФрд╕рдд рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдКрдВрдЪрд╛рдИ) рд╕реЗ рдХрд┐рддрдиреА рднрд┐рдиреНрди рд╣реЛрддреА рд╣реИред рдЖрдк рдПрдХ рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рдореЗрдВ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ


рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо


рд╕рдордЧреНрд░ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рджреЛ рдмрд╛рдЙрдВрдбрд┐рдВрдЧ рдмрд╣реБрднреБрдЬ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЕрдВрджрд░ рдЦреАрдВрдЪреЗ рдЧрдП рдмрд╣реБрднреБрдЬ рдХреЗ рд╕рднреА рдмрд┐рдВрджреБрдУрдВ рдХреЛ рд╕реНрдерд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╛рдиреА рдЖрдкрдХреЛ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЗ рджреЛ рдХреНрд▓реЛрди рдмрдирд╛рдиреЗ рдФрд░ рдЙрди рдкрд░ рдПрдХ рд╕рдВрдкреАрдбрд╝рди рдкрд░рд┐рд╡рд░реНрддрди рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдкрдХреНрд╖ рдореЗрдВ, рджреВрд╕рд░реЗ рд╕реЗ рдмрдбрд╝реЗ рдХреЛред рдЕрдЧрд▓рд╛, рд╣рдо рдЙрди рд╕рднреА рдмрд┐рдВрджреБрдУрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдмрдбрд╝реЗ рдмрд╣реБрднреБрдЬ рдХреЗ рдЕрдВрджрд░ рдФрд░ рдЫреЛрдЯреЗ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╣рдо рдЙрди рдмрд┐рдВрджреБрдУрдВ рдХрд╛ рдкреНрд░рддрд┐рд╢рдд рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдирд╣реАрдВ рдЖрддреЗ рдереЗред рдереНрд░реЗрд╕рд╣реЛрд▓реНрдб рдкреНрд░рддрд┐рд╢рдд рдЦреАрдВрдЪреА рдЧрдИ рдЖрдХреГрддрд┐ рдХреА рд╕рдЯреАрдХрддрд╛ рдХрд╛ рд╕реНрддрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред



UPD: рдПрдХ рдЖрдпрд╛рдореА рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдпрд╣рд╛рдБ рд╣реИ ред

рд╕рдВрджрд░реНрдн


рдПрдХреНрд╢рдирд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА: FPGeometry2d.swc рдФрд░ FPGeomControl.swc ред

Source: https://habr.com/ru/post/In190866/


All Articles