Aktív témák
-
_az
senior tag
Üdv.
Azért nyitottam új topicot, mert a régiekkel má senki se törődik...
Szal animációt kéne gyártanom. Pl. rajzolok egy kockát és mozgatni szeretném ide-oda...
Ezt hogyan tehetem meg??? Milyen parancsokkal???
A tudásom ilyen téren 0, a tankönyvem meg mellőzi ennek a bemutatását, órán meg egy szót se szóltak róla... :(
HELP!!!! :Faz
-
BaLinux
tag
Helló!
Mi konkrétan a célod ezzel a programmal? Valami beadandó feladat, vagy ''csak'' érdekel és tanulni akarsz? Vágod annyira a c-t hogy kevés magyarázattal megérts, átláss egyszerű programokat?
Ha az ilyen 3d, anim, stb komolyan érdekel, a DOSos fordítókat el lehet felejteni; a 3dhez (kocka) valami alapvető lineáris algebra tudás kellene meg talán opengl...
szívesen segítek, csak konkretizáld mennyire akarsz belemenni. -
_az
senior tag
Naná, hogy beadandó feladat! :DDD Csak elfelejtették leadni az anyagot, hál Istennek haladékot kaptunk.
Szal felülről kell grafikusan a közlekedést modellezni. Tehát jön a kisautó, pirosnál megáll, kanyarodik, félreáll, ilyenek.
Gondoltam először a télleges algoritmusra kéne rájönnöm, utána jöhat poligonáradat... 2D Vga 16 színnel már túzottan is jó! Ha lehet, akkor egy kis magyarázatot is fűzzél a dolgokhoz, mert amik nekem vannak példaprogramok, azok kissé átláthatatlanok, én meg ebben totál kezdő vagyok, csak tudok poligont, meg ilyeneket rajzolni.
Előre is kösz!az
-
BaLinux
tag
jajó :D
Akkor ehhez nem kell háromdé, ha felülnézetből kell mutatni. A leírásod alapján gondolom _nem_ a szimuláció részéhez kérsz segítséget, hanem a megjelenítéshez?
Akkor 1 autó modellét elég ha megfelelő structban eltárolod: milyen nagy téglalap az autó (méretek), hol van éppen (koordinátái), meg milyen szögben áll (radián), és az egyéb szükséges dolgok amik a szimulációhoz kellenek. Feltételezem, hogy az autó szigorúan téglalap. :)
Aztán ebben a structban lévő adatokat módosítgatva szimulálod a mozgást, és minden ciklus végén kirajzolod az aktuális állapotot.
A rajzolás során egyetlen ''nehézség'' az autó téglalapjának elforgatott koordinátáit kiszámolni, ami pontonként 2-2 sin/cos, és kész. (Ha mátrixszal csinálod a forgatást/eltolást, akkor még szép is lehet a megoldás ;]) -
_az
senior tag
no várjá...
hogyan tudom a ''téglalapom''(majd dizájnolok később valami fasirt autót) összefűzni egy xy koordinátapárossal, meg a radiánnal? Mer ezek szerint pl egy for ciklussal változtatom v.melyik értéket(irány) és a sebességet meg delayel adom meg és mindezt a végén kirajzoltatom, ugye? Matrix nekem még egy csöppet magas...
Ezekszerint ehhez nem szükségeltetik valami spec. függvény: tehát nem kell szívóznom ilyen setactivepage vagy mi a fenével, ugye?
Azér egy rövid példát be tudnál rakni? pl. 1 kocka elmegy a kép bal széléről a jobbra...
THX
(Szerk: álljunk csak meg! a téglalap 4 szélének koordinátáit változtatom és már el is mozdul, mi????? Hú, megyek is kisérletezgetni!!!)
[Szerkesztve]az
-
BaLinux
tag
Na ez a jó hozzáállás :)
A setactivepage-gel szívózni kell, mert úgy lesz jó, de én a DOSos jellegű megjelenítésre már nem igazán emléxem. :)
Egy téglalapot tehát pl. úgy írhatsz le hogy:
struct Teglalap {float x,y; float szelesseg, magassag; float szog;};
És az én értelmezésemben az x,y lehetne mondjuk a téglalap közepe, mert akkor könnyebb kezelni a szog elfordulást. A 0 fokot általában a a vízszintes jobbra mutató vektor jelenti, és óramutató járásával ellentétesen nő, tehát PI/2 az a fel, PI a balra, 3/2*PI a le, és 2*PI-nél visszaértél.
A téglalap 4 pontjának koordinátái (ahova kirajzolod) minden transzformáció nélküli (0,0 helyzetben és elforgatatlanul lévő) téglalapkoordinátára:
forgatott_es_eltolt_x = x_eredeti*cos(szog)-y_eredeti*sin(szog) + x_eltolas
forgatott_es_eltolt_y = -x_eredeti*sin(szog)+y_eredeti*cos(szog) + y_eltolas
Asszem ennyi kell neked.
Azért leírom hogy az (x_eredeti; y_eredeti) a következő pontok:
P1(-szelesseg/2; magassag/2), P2(-szelesseg/2; -magassag/2); P3(szelesseg/2; magassag/2); P4(szelesseg/2; -magassag/2).
Természetesen ezzel a módszerrel csak addig lehet majd pontokat transzformálnod, amíg valamilyen poligont rajzolsz. Ha képet teszel a helyére, más a helyzet, mert akkor képet kell hasonlóan elforgatni, ami bonyibb!
Még valami, vigyázz azzal, hogy a képernyő koordinátarendszerének y tengelye a descartes-félének a fordítottja! Tehát rajzolásnál még plusz negálást is számolhatsz.
Remélem segítettem... -
_az
senior tag
JAJA!!! KÖSSZIKEEEE!!!!!! :C
Már sikerült is csinálnom egy primitív, de mozgó kockát!!!az
-
taltos
senior tag
Üdv!
Én még egyelőre nem tudok segíteni, de aktív figyelője leszek ennek a topicnak! Hajrá!!!
Ha kellek valamire, elértek! :) -
BaLinux
tag
Na, láttam egy vicces filmet :)
Szívesen segítek ilyen kezdeti nehézségeken. Bármi értelmes kérdésed van c, c++, java, prolog, sml, sql, php nyelvekről vagy opengl meg ilyesmi libek használatáról, esetleg ezek matek alapjáról, grafikáról, ötlet kell vagy ilymi, csak szóljál :B
Aktív témák
- Azonnali fotós kérdések órája
- Autós topik
- Távol-keleti webshopok OFF topikja (játékok, kuponok, stb.)
- Összemoshatja a Google és a Magic Leap a valódi és a digitális világokat
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Milyen okostelefont vegyek?
- Jack Hunter: Egérragasztó
- BestBuy ruhás topik
- Mibe tegyem a megtakarításaimat?
- Ukrajnai háború
- További aktív témák...
Állásajánlatok
Cég: Alpha Laptopszerviz Kft.
Város: Pécs
Cég: Ozeki Kft.
Város: Debrecen