рдЧрд╛рдореЗрджреЗрд╡ рдореЗрдВ рдорда рд╕рд░рд▓ рд╣реИред рдПрдХрддрд╛ рдореЗрдВ рддреНрд░рд┐рдХреЛрдгрд╛рд╕рди рдФрд░ рддреНрд░рд┐рднреБрдЬ.рдиреЗрдЯ

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



рддреНрд░рд┐рдХреЛрдгрд╛рд╕рди рдХреНрдпрд╛ рд╣реИ?


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



рддреНрд░рд┐рдХреЛрдгрд╛рд╕рди рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдкреНрд░рдХрд╛рд░ рдХреЗ рддреНрд░рд┐рднреБрдЬреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдбреЗрд▓реБрдирд╛рдп рддреНрд░рд┐рднреБрдЬред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рддреНрд░рд┐рдХреЛрдгрд╛рд╕рди рдХреЛ рдЙрд╕ рдЧреБрдг рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╖реНрдард┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рддреНрд░рд┐рднреБрдЬ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдкрд░рд┐рдзрд┐ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕ рддреНрд░рд┐рднреБрдЬ рдХреЗ рдХреЗрд╡рд▓ рдХреЛрдиреЗ рд╣реА рд╣реЛрддреЗ рд╣реИрдВред



рдЙрдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ?


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

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



рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡рд┐рд╡рд╢ Delaunay triangulation рдФрд░ Chew рдХреЗ рджреВрд╕рд░реЗ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдФрд░ Ruppert рдХреЗ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЬреИрд╕реЗ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк tirrains рдХреЗ рд▓рд┐рдП рдФрд░ рднреА рдмреЗрд╣рддрд░ рдореЗрд╖ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдФрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ meshes рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдкрд░рд┐рдорд┐рдд рд╡рд┐рдзрд┐ рд╡рд┐рдзрд┐ред

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



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

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

рд╣реЛрд▓реНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рди рдХреА рдХрддрд░рди




рд╢рд╛рдпрдж рд╕рд░рд▓ рддреНрд░рд┐рднреБрдЬ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдореЗрдВ рд╕реЗ рдПрдХред рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЧреНрд░рд┐рдб рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ рдФрд░ рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рдЬрдЯрд┐рд▓рддрд╛ рдУ (рдПрди ^ 2) рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реИред

рдЖрдк рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред

рдмрд╛рдЙрдпрд░ - рд╡рд╛рдЯрд╕рди рдПрд▓реНрдЧреЛрд░рд┐рдердо




рдПрдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЬреЛ рдЕрдВрдХреЛрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рдкрд░ Delaunay рддреНрд░рд┐рднреБрдЬ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЕрдзрд┐рдХрд╛рдВрд╢ рдбреЗрд▓реЙрдирд╛рдп рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рд╕рд╛рде, рдпрджрд┐ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдПрд▓реНрдЧреЛрд░рд┐рдердо рдЬрдЯрд┐рд▓рддрд╛ рдУ (рдПрди рд▓реЙрдЧ рдПрди) рд╣реИ, рдЬрд╣рд╛рдВ рдПрди рдХреЛрдиреЗ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдпрд╣ O (n ^ 2) рд▓рдЧ рд╕рдХрддрд╛ рд╣реИред

рдХрд╛рди рдХрддрд░рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдиреБрдХрд╕рд╛рди рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЙрддреНрддрд▓ рддреНрд░рд┐рдХреЛрдгреАрдп рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдмреБрдирд┐рдпрд╛рджреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдкрд░рд┐рдгрд╛рдореА рдЧреНрд░рд┐рдб рдореЗрдВ рдЫреЗрдж рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

Delaunay рдкрд░рд┐рд╢реЛрдзрди рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг




рдЪреНрдпреВ рдХрд╛ рджреВрд╕рд░рд╛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдФрд░ рд░реВрдкрд░реНрдЯ рдХрд╛ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдбреЗрд▓реМрдирд╛ рддреНрд░рд┐рдХреЛрдг рдореЗрдВ рдмрд╛рдзрд╛рдУрдВ рдХреЛ рджрд░реНрдЬ рдХрд░рдиреЗ рдФрд░ рдЧреНрд░рд┐рдб рдореЗрдВ рддреНрд░рд┐рдХреЛрдг рдХреЗ рдиреНрдпреВрдирддрдо рдХреЛрдг рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╡рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рд╡реЗ рдПрдХ рдЕрдирдВрдд рд▓реВрдк рдореЗрдВ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд▓рдЧрднрдЧ 20.7 рдбрд┐рдЧреНрд░реА рдФрд░ 29 рдбрд┐рдЧреНрд░реА рдХреЗ рдмреАрдЪ рдХреЗ рдХреЛрдгреЛрдВ рдкрд░ рдкрд░рд┐рдгрд╛рдо рджреЗрдиреЗ рдХреА рдЧрд╛рд░рдВрдЯреА рд╣реИред рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдиреНрдпреВрдирддрдо рдХреЛрдг рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред

Chew рдХрд╛ рджреВрд╕рд░рд╛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдирд┐: рд╢реБрд▓реНрдХ рдкреИрдХреЗрдЬ www.cs.cmu.edu/~quake/triangle.html рдФрд░ рдЗрд╕рдХреЗ рдкреЛрд░реНрдЯ .Net рд╕рдВрдЧреНрд░рд╣ . codeplex.com/?p=triangle рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ

рдПрдХрддрд╛ рдХреЗ рд▓рд┐рдП Triangle.Net


рдЦреИрд░, рдЪреВрдВрдХрд┐ рддреНрд░рд┐рдХреЛрдгрд╛рд╕рди рдХреА рдорджрдж рд╕реЗ рдЖрдк рдЗрддрдиреЗ рд╢рд╛рдВрдд рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЫреБрдЯреНрдЯрд┐рдпреЛрдВ рдореЗрдВ рдореИрдВ рдПрдХрддрд╛ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдЖрд╡рд░рдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рддрд╛рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рд╣рдореЗрд╢рд╛ рдПрдХ рдЖрд╕рд╛рди рдЙрдкрдХрд░рдг рд╣реЛред рдЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ, рддреНрд░рд┐рдХреЛрдгреАрдп рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдУ (рдПрди) рдХреЗ рд▓рд┐рдП рдФрд╕рддрди рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдУ (рдПрди * рд▓реЙрдЧ рдПрди) рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЬрд╣рд╛рдВ рдПрди рдХреЛрдиреЗ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдПрдХ рд╡рд░реНрдЧ рдореЗрдВ 1kk рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рдмрд┐рдЦрд░реЗ рд╣реБрдП рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП, рдЗрдВрдЯреЗрд▓ рдХреЛрд░ i7-8700 рдкрд░ рд╕рдВрдкрд╛рджрдХ рдХреА рдЗрдХрд╛рдЗрдпреЛрдВ рдиреЗ рдФрд╕рддрди 7.56 рд╕реЗрдХрдВрдб рдореЗрдВ рдПрдХ рдЧреНрд░рд┐рдб рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ред

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

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

рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
public void GenerateMesh() { if(_CurrentState != MeshDrawerState.Nothing) return; Polygon poly = new Polygon(); poly.Add(_Contour); foreach (var hole in _Holes) { poly.Add(hole, true); } var triangleNetMesh = (TriangleNetMesh) poly.Triangulate(); GameObject go = new GameObject("Generated mesh"); var mf = go.AddComponent<MeshFilter>(); var mesh = triangleNetMesh.GenerateUnityMesh(); mesh.uv = GenerateUv(mesh.vertices); mf.mesh = mesh; var mr = go.AddComponent<MeshRenderer>(); mr.sharedMaterial = _MeshMaterial; var collider = go.AddComponent<PolygonCollider2D>(); collider.points = _Contour.ToArray(); var rb = go.AddComponent<Rigidbody2D>(); rb.mass = triangleNetMesh.Triangles.Sum(tris => tris.Area); Clear(); } 



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

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

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


All Articles