рдЬрд╛рд╡рд╛ рдореЗрдВ рд╕рдмрд╕реЗ рд╕рд░рд▓ рддреНрд░рд┐рднреБрдЬ

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

рднрд╛рдЧ 1. рд╕рд┐рджреНрдзрд╛рдВрдд рдФрд░ рдЬреНрдпрд╛рдорд┐рддрд┐ рдХрд╛ рдПрдХ рд╕рд╛

A (xa, ya), B (xb, yb), C (xc, yc) рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЖрдпрддрд╛рдХрд╛рд░ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рджрд┐рдП рдЧрдП рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рд╕рд╛рде рд╕рд┐рдЧреНрдирд▓ рдбрд┐рдЯреЗрдХреНрдЯрд░ рд╣реИрдВред O (xo, yo) рд╕рд┐рдЧреНрдирд▓ рд╕реНрд░реЛрдд рд╣реИред
рд╣рдо рд╕реНрдХреВрд▓ рднреМрддрд┐рдХреА рдХреА рдкрд╛рдареНрдпрдкреБрд╕реНрддрдХ рд╕реЗ рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╕рд┐рдЧреНрдирд▓ рдЖрдпрд╛рдо рд╕реНрд░реЛрдд рдХреЗ рджреВрд░реА рдХреЗ рд╡рд░реНрдЧ рдХреЗ рд╡реНрдпреБрддреНрдХреНрд░рдорд╛рдиреБрдкрд╛рддреА рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕реНрд░реЛрдд рдП рд╕реЗ рдбрд┐рдЯреЗрдХреНрдЯрд░ рдП рддрдХ рдХреА рджреВрд░реА рдЖрд░рдП рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдЧреА

, рдЬрд╣рд╛рдВ ka рдХреБрдЫ рдЧреБрдгрд╛рдВрдХ рд╣реИ рдЬреЛ рд╣рдо рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдХреИрд▓рд┐рдмреНрд░реЗрдЯ рдХрд░рддреЗ рд╕рдордп рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╣рдо рдЬреНрдпрд╛рдорд┐рддрд┐ рдХреЗ рд╕реНрдХреВрд▓ рдкрд╛рдареНрдпрдХреНрд░рдо рд╕реЗ рджреВрд░реА a1 рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реВрддреНрд░ рд▓реЗрддреЗ рд╣реИрдВ (рдпрд╣ рдпрд╣рд╛рдВ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╢рд░реНрдо рдХреА рдмрд╛рдд рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдкреВрд░реНрдгрддрд╛ рдХреЗ рд▓рд┐рдП рд░рд╣рдиреЗ рджреЗрдВ)ред

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

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

рддреЛ, рдПрдХ рд╕рд░рд▓ рд╕рдорд╛рдзрд╛рди рдкрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЪрд▓реЛ рдЗрд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рд▓рд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рд╕рд░реНрд╡рд░ рд╣рд┐рд╕реНрд╕рд╛ рдЬрд╛рд╡рд╛ рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рдЯреАрд╕реАрдкреА рд╕реЗ рдЕрдзрд┐рдХ рдбреЗрдЯрд╛ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдПрд╕рдПрд╕рдПрд▓ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреЗ рд╕рд╛рде json рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╣реИред рдХреЛрдб рдХрд╛ рдпрд╣ рд╣рд┐рд╕реНрд╕рд╛ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИ, рдПрдХ рдЕрд▓рдЧ рдереНрд░реЗрдб рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдкреНрд░рд╛рдкреНрдд рдШрдЯрдирд╛рдУрдВ рдХреЛ mysql рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рддреНрд░рд┐рдХреЛрдгрд╛рд╕рди рдЕрдкрдиреЗ рд╣реА рд╕реВрддреНрд░ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЙрди рдШрдЯрдирд╛рдУрдВ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдЕрднреА рддрдХ mysql рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рд╡рд░реНрддрдорд╛рди рд╕рдордп рд╕реЗ 3 рд╕реЗрдХрдВрдб рдкрд╣рд▓реЗ рдирд╣реАрдВ - рд╕рднреА рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рдПрдХ рд╣реА рд╕рдВрдХреЗрдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП)ред
рдпрджреНрдпрдкрд┐ рд╕рдорд╛рдзрд╛рди рд╕рд░рд▓ рдерд╛ рдФрд░ рдХрд┐рд╕реА рднреА рдЧрдгрд┐рдд рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рд╣рд▓рдХреЛрдВ рдХреЗ рдЪреМрд░рд╛рд╣реЗ рдХреА рдЧрдгрдирд╛ рдХрд░рдирд╛ рдХрд┐рд╕реА рди рдХрд┐рд╕реА рддрд░рд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдЬрд╛рд╡рд╛ рдореЗрдВ рдПрдХ AWT рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ рдЬреЛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рдХрд░рддрд╛ рд╣реИред рдПрдХ рд╡рд┐рдВрдбреЛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреА рдХрдореА рдЙрд╕реЗ рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рдХрд░рддреА рд╣реИ, рдФрд░ рдЙрд╕рдХреА рдХреБрдЫ рдХрдХреНрд╖рд╛рдПрдВ рдмреИрдХрдПрдВрдб рдореЗрдВ рд╕рд░реНрд╡рд░ рдкрд░ рдареАрдХ рдХрд╛рдо рдХрд░рддреА рд╣реИрдВред
рдореИрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рдереЛрдбрд╝рд╛ рд╕рд░рд▓реАрдХреГрдд рдХреЛрдб рд▓рд╛рддрд╛ рд╣реВрдВред
public static TriangulationPoint triangulate(AlertDbo sourceAlert, AlertDbo[] children, MapFileDbo map) { тАж double ppx = map.getWidth() / map.getRealWidth(); //pixels per feet horizontal double ppy = map.getHeight() / map.getRealHeight(); //pixels per feet vertical 

рддреЛ, ppx / ppy рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЗрд╕реЗ рд╕рдордЭрддреЗ рд╣реИрдВ - рдпреЗ рдкрд┐рдХреНрд╕реЗрд▓ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рдЕрдиреБрд╡рд╛рдж рдХреЗ рд▓рд┐рдП рдЧреБрдгрд╛рдВрдХ рд╣реИрдВред
рд╣рдо рдкрд╣рд▓реЗ рдбрд┐рдЯреЗрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рд╕рд┐рдЧреНрдирд▓ рд╕реНрддрд░ рд▓реЗрддреЗ рд╣реИрдВ, рд╕реНрд░реЛрдд рд╕реЗ рджреВрд░реА рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ, рд╣рдо рдкреНрд░рд╛рдкреНрдд рддреНрд░рд┐рдЬреНрдпрд╛ рдХреЗ рд╕рд╛рде рдЬреНрдЮрд╛рдд рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдПрдХ рд╕рд░реНрдХрд▓ рдмрдирд╛рддреЗ рд╣реИрдВред
  double strength = sourceAlert.getSignalStrength(); double distance = calculateDistance(strength *sourceAlert.getDetector().getKoef()); MapCoordDbo coord = sourceAlert.getCoords(); тАж Area area = new Area(new Ellipse2D.Double(coord.getX(), coord.getY(), distance*2, distance*2)); 

рдЕрдм рд╣рдо рд╢реЗрд╖ рд╕рднреА рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рдЧреБрдЬрд░рддреЗ рд╣реИрдВ рдФрд░ рд╡рд╣реА рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╕рд░реНрдХрд▓ рдХреЗ рд╕рд╛рде рдкрд╣рд▓реЗ рд╕рд░реНрдХрд▓ рдХреЛ рдХрд╛рдЯрддреЗ рд╣реИрдВ, рд╢реЗрд╖ рдбрд┐рдЯреЗрдХреНрдЯрд░реЛрдВ рдХреЗ рд▓рд┐рдП рд▓реВрдк рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдЪрд╛рд▓ - рд╣рдо рдХрдорд░реЗ рдХреА рдЖрдпрдд рдХреЗ рд╕рд╛рде рдкрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рдЕрдиреНрдпрдерд╛ рдРрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдкрд░рд┐рдгрд╛рдо рдЗрд╕рдХреЗ рдкрд░реЗ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
  for(int j=0;j<children.length;j++) { тАж strength = children[j].getSignalStrength(); distance = calculateDistance(strength * children[j].getDetector().getKoef()); coord = children[j].getCoords(); area.intersect(new Area( new Ellipse2D.Double(coord.getX(), coord.getY(), distance*2, distance*2) )); area.intersect(new Area(new Rectangle(0, 0, map.getWidth(), map.getHeight()))); } 


рдареАрдХ рд╣реИ, рдЕрдВрдд рдореЗрдВ, рд╣рдо рдЬрд╛рдВрдЪрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрдо рд╕реЗ рдХрдо рдХреБрдЫ рдмрдЪрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╣рдо рдЧрдгрдирд╛ рдХреА рддреНрд░реБрдЯрд┐ рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ (рдЖрдпрдд рдХрд╛ рдЖрдзрд╛ рд╡рд┐рдХрд░реНрдг рдЬрд┐рд╕рдореЗрдВ рдкрд░рд┐рдгрд╛рдореА рдХреНрд╖реЗрддреНрд░ рдЙрддреНрдХреАрд░реНрдг рд╣реИ)ред

  if(area.getBounds().getWidth()>0 && area.getBounds().getHeight()>0) { TriangulationPoint tp = new TriangulationPoint(); tp.x = area.getBounds().getCenterX(); tp.y = area.getBounds().getCenterY(); double dx = area.getBounds().getWidth() / 2; double dy = area.getBounds().getHeight() / 2; tp.err = Math.sqrt(dx*dx + dy*dy) /2; return tp; } return null; } 

рдпрд╣ рдПрдХ рджреВрд░реА рдХреА рдЧрдгрдирд╛ рдХрд╛ рдХрд╛рд░реНрдп рд╣реИред
 public static double calculateDistance(double db) { double[] dbs = {тАж}; double[] fts = {тАж}; double koef = -тАж; double prevDb = 70; double prevDist = 0; for(int i=0;i<dbs.length;i++) { if(dbs[i]<db) { break; } koef = (dbs[i] - prevDb) / (fts[i] - prevDist); prevDb = dbs[i]; prevDist = fts[i]; } return prevDist + koef * (db - prevDb); } 

рдкрд╣рд▓реЗ, рдпрд╣ рдПрдХ рд▓рдШреБрдЧрдгрдХ рдХрд╛рд░реНрдп рдерд╛, рд▓реЗрдХрд┐рди, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрдХреЗрдд рдХрд╛ рдХреНрд╖реАрдгрди рдЕрд▓рдЧ рд╣реИ, рдореБрдЭреЗ рдкреНрд░рдпреЛрдЧрд╢рд╛рд▓рд╛ рдореЗрдВ рдХрдИ рдмрд┐рдВрджреБрдУрдВ рдкрд░ рд╕рдВрдХреЗрдд рд╕реНрддрд░ рдХреЛ рджреЗрдЦрдирд╛ рдерд╛ рдФрд░ рд╕рдВрдХреЗрдд рд╕реНрддрд░ рдФрд░ рдиреАрдЪреЗ рдХреА рджреВрд░реА рдХреЛ рджреЛ рд╕рд░рдгрд┐рдпреЛрдВ рдореЗрдВ рд▓рд┐рдЦрдирд╛ рдерд╛ред
рдмрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВрдиреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛, рддрд╛рдХрд┐ рдПрдирдбреАрдП рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рди рд╣реЛред
рд╡реИрд╕реЗ, C # рдореЗрдВ рдареАрдХ рд╡реИрд╕рд╛ рд╣реА рд╕рдорд╛рдзрд╛рди рд╕рдВрднрд╡ рд╣реИред рдПрд░рд┐рдпрд╛ рдХреЗ рдмрдЬрд╛рдп, рдЖрдкрдХреЛ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕рдкреИрде рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдПрдХ рдЗрдВрдЯрд░рд╕реЗрдХреНрдЯ рд╡рд┐рдзрд┐ рд╣реИред рдПрдХрдорд╛рддреНрд░ рдХрдард┐рдирд╛рдИ рдкрд░рд┐рдгрд╛рдореА рдЪреМрд░рд╛рд╣реЗ рдХрд╛ рдХреЗрдВрджреНрд░ рдвреВрдВрдв рд░рд╣реА рд╣реИред рдпрд╣рд╛рдБ C # рдореЗрдВ рдПрдХ рдХреНрд╖реЗрддреНрд░ рдХреЗ рдХреЗрдВрджреНрд░ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рд╣реИ:
  private PointF RegionCentroid(Region region, Matrix transform) { float mx = 0; float my = 0; float total_weight = 0; foreach (RectangleF rect in region.GetRegionScans(transform)) { float rect_weight = rect.Width * rect.Height; mx += rect_weight * (rect.Left + rect.Width / 2f); my += rect_weight * (rect.Top + rect.Height / 2f); total_weight += rect_weight; } return new PointF(mx / total_weight, my / total_weight); } 

рдЗрд╕рд▓рд┐рдП, рдХреБрдЫ рдорд╛рдиреНрдпрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде, рдЧрдгрд┐рдд рдФрд░ рднреМрддрд┐рдХреА рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рдЬреНрдЮрд╛рди рд░рдЦрдиреЗ рдХреЗ рдмрд┐рдирд╛, рдмрд▓реНрдХрд┐ рдЬрдЯрд┐рд▓ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред
рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!


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


All Articles