Hogyan kell kiszamolni 4 darab sikidom kozos sulypontjat?
1) Kiszámolod külön-külön az egyes síkidomok (x,y) súlypontkoordinátáit!
2) Meghatározod az egyes síkidomok területét
3) A rendszer X súlypontjának koordinátája: terület1*súlypontx1 + terület2*súlypontx2 + terület3*súlypontx3 + terület4*súlypontx4
Ezt pedig elosztod (terület1+terület2+terület3+terület4)-gyel. Így megkapod hol van a 4 síkidom közös súlypontjának X koordinátája.
4) Súlypont Y koordinátájának meghatározása: ugyanúgy, mint x-nél, csak x helyére y-t helyettesítesz.
#1es nem jo megoldas, nem ad helyes eredmenyt;
#2es, ha csak a koordonatakat tudom, hogyan szamolok teruletet?
Adott ket vektor:
P1={36,468, 36,305, 220,305, 228,313, 228,804,
161,751, 161,751, 139,730, 119,706, 101,682,
85,655, 71,628, 59,600, 50,571, 43,541,
38,510, 36,480, 36,449, 36,468,}
P2={260, 36, 228, 36, 228,397, 851,397, 848,366, 842,336, 834,306, 824,276, 284,276, 260,252, 260, 36}
i.dik elem az x es i+1 az y az koordonata-rendszerben;
Szamitogepen rajzold meg oket, majd keszitsd el a P2 szimmetrikusat x=y tengelynel (jeloljuk ezt P2'-kent)
P-nek es P2'nek rajzold meg a szimmetrikusat ha a tengely x=420. (eddig megvan)
Az igy kapott 4 sikidomnak keresd meg a kozos sulypontjat es abrazold ezt egy r=7 sugaru kor kozeppontjakent.
Az abarazolast is meg tudom csinalni, de nem tudom h talalom meg a kozos sulypontot...
Első vagyok. Igazad van, hülyeséget írtam, már régen tanultam. Cserébe programozni azt picit tudok, és vannak ötleteim, hogy a másodiknak az egyébként helyes módszerét hogyan tudnád megvalósítani.
Az első lehetséges, de nem olyan szép módszer, a brutal force. Végigmész minden egyes ponton, és megnézed, hogy bármelyik alakzatba beleesik-e. Ehhez mindössze annyit kell csinálni, hogy az elején feltöltesz egy 1000*1000 boolean tömböt egyesekkel ott, ahol megy át rajta él, és nullásokkal ott, ahol nem. (Pitagorasz tétel+minden létező élen for ciklussal átjutás) Majd amikor brute forceal mész át az összes ponton, csak annyit ellenőrzöl, hogy megteszel-e egy kört az alakzaton belül úgy, hogy csak 0-ás mezőkön lépegethetsz, és körülötte csak egyes mezők vannak. Ezt most nem fogom leírni pontosan hogy kell, de egy nagyon egyszerű algoritmus. Majd a kiértékelt pontokat beletöltöd egy másik 2D-s tömbbe, és utána már átlagolhatod az összes x és y koordinátát, megfogod kapni nagyon szép közelítéssel a helyes eredményt.
Másik módszer a szebbik, de talán melósabb. Fel kell vagdosnod az eredeti alakzatokat háromszögekre, aminek már coszinusz tétellel ki tudod számítani a területét, és súlypontját is az arra vonatkozó matematikai képlettel. Ha meg van minden területed, és súlypontod, már tudod őket súlyozottan átlagolni a területek nagyságában.
Nem tudom, mi ez a grafikus felület amit használtok, ha van rajta valami plusz funkció, akkor persze azt is használhatod, én most csak a sima c++ és math könyvtárban lévő dolgokat használtam.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!