
Ma na kapuai Ke hoʻopuka nei au i nā pilikia mai ke ala Algorithm. (ʻO ka papahana hoʻokūkū maʻamau. Pono ʻoe e hoʻoponopono i ʻekolu mau pilikia ma Java, C#, C++, a i ʻole Python i loko o hoʻokahi hola a me ka hapa.)
1. Pai no ʻeono
Ka hoʻokumu ʻana i ka pilikia
Palena manawa: 4 kekona.
He pai kāu. Ke nānā ʻia mai luna mai, ua like ke ʻano o ka pai me kahi polygon convex (koʻikoʻi). Hāʻawi ʻia iā ʻoe nā hoʻonohonoho helu piha o nā piko, X a me Y.
ʻElima ou mau hoaaloha. Makemake ʻoe e puʻunaue i kahi pai i ʻeono mau ʻāpana like ka nui (akā, ʻaʻole pono ke ʻano like). ʻOiaʻiʻo, hiki i kekahi ke hana ia mea i ʻelima mau ʻoki, akā ʻo ka mea akamai wale nō ke hana ia mea i ʻekolu.
E huli i ʻekolu ʻoki me nā laina pololei ma o kahi kiko like e puʻunaue ana i ka pai i ʻeono mau ʻāpana like. E paʻi iā {x, y, d1, d2, d3}, kahi (x, y) ke kiko like o nā ʻoki ʻekolu, a ʻo d1, d2, d3 nā kihi o nā ʻoki ma nā radians.
DefinitionPapa: CakeForSix
ʻAno hana: ʻoki
Nā palena: int[], int[]
Hoʻihoʻi: pālua[]
Pūlima hana: pālua[] ʻoki(int[] x, int[] y)
(e hōʻoia i ka lehulehu o kāu hana)
Nā memo
- ʻO ke kuhikuhi maikaʻi ma ke axis-x he 0 (radians), ʻo ke kuhikuhi maikaʻi ma ke axis-y he pi/2 (radians).
- Ua like ka ʻoki ma ke kuhikuhi d me ka ʻoki ma ke kuhikuhi pi*k+d no kekahi helu holoʻokoʻa k.
- Hiki iā ʻoe ke hoʻopuka i nā kuhikuhi āpau, ʻaʻole pono lākou mai [0, pi).
- E helu ka mea mākaʻikaʻi i nā ʻāpana o kāu mau ʻāpana keke ʻeono i nā pālua. E ʻae ʻia ka pane inā ʻoi aku ka liʻiliʻi o ka ʻokoʻa pili a i ʻole ka ʻokoʻa paʻa ma waena o lākou ma mua o 10^(-4).
- ʻOi aku ka pololei, e ʻo X a me Y ka mea liʻiliʻi loa a me ka mea nui loa o kāu mau ʻāpana ʻeono i helu ʻia e ka mea māka. A laila e ʻae ʻia kāu pane inā ʻo Y
- (Ua hoʻohana ka mana mua o ka pilikia i ka pololei 1e-7 ma kahi o 1e-4. No ka hoʻoponopono ʻana i kēia pilikia, ua hoʻohaʻahaʻa ʻia ka palena pololei i loko o ka waihona ma muli o ke alo o nā hihia kāhea e hiki ai ke hoʻopilikia i ka pilikia me ka pololei 1e-7. I loko o kahi honua kūpono, pale nā palena i ia mau hihia a koi mau i ka pololei kiʻekiʻe, no laila ʻaʻole maʻalahi ka hoʻoponopono ʻana i ka pilikia me kekahi hoʻonui helu maʻamau.)
Nā palena
- Loaʻa iā x mai 3 a 50 mau mea.
- Loaʻa iā y ka helu like o nā mea me x.
- nā hoʻonohonoho āpau ma waena o 0 a me 10,000 me ka hoʻokomo pū ʻana
- Ho'ākāka 'o x a me y i kahi polygon convex ma ke kuhikuhi counterclockwise.
Kumu ma ka ʻōlelo Pelekania
Hōʻike pilikia
ʻO ka palena manawa he 4 kekona.
He keke kāu. Ke ʻike ʻia mai luna mai, he polygon convex (koʻikoʻi) ka keke. Hāʻawi ʻia iā ʻoe nā hoʻonohonoho o kona mau vertices ma ka int[]sx a me y.
ʻElima ou mau hoaaloha. Makemake ʻoe e ʻoki i ke keke i ʻeono ʻāpana like ka nui (akā, ʻaʻole pono ke ʻano like). ʻOiaʻiʻo, hiki i kekahi ke hana i kēlā ma nā ʻoki ʻelima - akā ʻo ka mea akamai maoli wale nō ke hana i ʻekolu!
E huli i ʻekolu ʻoki laina pololei e hele ana ma ke kiko like i ʻoki i ke keke i ʻeono ʻāpana like ka nui. E hoʻihoʻi i {x, y, d1, d2, d3}, kahi (x, y) ke kiko maʻamau o nā ʻoki ʻekolu, a ʻo d1, d2, d3 ko lākou mau kuhikuhi ma nā radians.
Definition
Papa: CakeForSix
ʻAno hana: ʻoki
Nā palena: int[], int[]
Hoʻihoʻi: pālua[]
Pūlima hana: pālua[] ʻoki(int[] x, int[] y)
(e hōʻoia i ka lehulehu o kāu hana)
Notes
— ʻO ke kuhikuhi maikaʻi ma ke axis x he 0 (radians), ʻo ke kuhikuhi maikaʻi ma ke axis y he pi/2 (radians).
— Ua like ka ʻoki ʻana i ke kuhikuhi d me ka ʻoki ʻana i ke kuhikuhi pi*k+d no kekahi helu piha k.
— Hiki iā ʻoe ke hoʻihoʻi i kekahi mau kuhikuhi, ʻaʻole pono lākou mai [0,pi).
— E helu ka mea hoʻopaʻa i nā ʻāpana o kāu mau ʻāpana keke ʻeono ma nā pālua. E ʻae ʻia ka pane inā ʻoi aku ka liʻiliʻi o ka ʻokoʻa pili a i ʻole ka ʻokoʻa paʻa ma waena o lākou ma mua o 10^(-4).
— ʻOi aku ka pololei, e ʻo X a me Y ka mea liʻiliʻi loa a me ka mea nui loa o kāu mau ʻāpana ʻeono, e like me ka helu ʻana a ka mea māka. A laila, e ʻae ʻia kāu pane inā ʻo Y < max( X + 10^(-4), X * (1+10^(-4)) ).
— (Ua hoʻohana ka mana mua o ka pilikia i ka pololei 1e-7 ma kahi o 1e-4. No ka hoʻoponopono ʻana i kēia pilikia ma ka waihona, ua hoʻohaʻahaʻa ʻia ka palena pololei ma muli o ke kū ʻana o nā hihia paʻakikī e hiki ai ke hoʻoholo ʻole i ka hana me ka pololei 1e-7. I loko o kahi honua kūpono, ʻaʻole e ʻae nā palena i ia mau hihia a koi mau i ka pololei kiʻekiʻe, no laila ʻaʻole maʻalahi ka hoʻoponopono ʻana i ka pilikia ma o kekahi hoʻonui helu maʻamau.)
nā palena
— e loaʻa iā x ma waena o 3 a me 50 mau mea, me ke komo pū ʻana.
— e like ka helu o nā mea o y me x.
— Aia nā hoʻonohonoho āpau ma waena o 0 a me 10,000.
— E wehewehe ʻo x a me y i kahi polygon convex ma ke kaʻina counterclockwise.
examples
0)
{0, 20, 30, 50, 30, 20}
{10, 0, 0, 10, 20, 20}
Hoʻi mai:
{24.999999999437453, 9.999999999500002, 0.0, 0.7266423406817211, 2.4149503129080787}
He hexagon like, akā ʻano ʻole. Pili ka pane hoʻohālike i ka ʻoki ʻana iā ia i ka hapalua ākea a hana i ʻelua ʻoki ʻē aʻe i lalo i ke kikowaena, e puʻunaue ana i kēlā me kēia hapalua i ʻekolu.

1)
{0, 1000, 0}
{0, 0, 1000}
Hoʻi mai:
{333.3333333331763, 333.3333333332546, 0.7853981633986264, 2.0344439357948154, 2.6779450445891753}
Huinakolu ʻākau. Eia hou, hiki iā kākou ke hoʻomaka me kekahi o nā ʻoki ʻekolu ma ke axis o symmetry.

2)
{40, 70, 90, 90, 50}
{30, 20, 40, 100, 60}
Hoʻi mai:
{69.79517771922892, 52.77575974637605, 2.0616329654335885, 3.637826104091601, 4.32123485812475}
Pentagon kūlike ʻole.

3)
{300, 400, 300, 200}
{500, 600, 700, 600}
Hoʻihoʻi: {299.99999999974995, 599.9999999995, 0.0, 1.107148717794088, 2.034443935795705}
Ua hoʻohuli ʻia kahi huinahā he 45 degere.

[]
Hiki i nā mea hoʻohana i hoʻopaʻa inoa ʻia ke komo i ka noiʻi. , e 'oluʻolu.
Ua hoʻoponopono au i ka pilikia ma
ma lalo o 10 mau minuke
NUMNUMX-10 mau minuke
NUMNUMX-30 mau minuke
Nā hola 1-2
ʻoi aku ma mua o 2 mau hola
kekahi'ē aʻe
42 mea hoʻohana i koho. Ua hōʻole nā mea hoʻohana 47.
Source: www.habr.com
