játékfejlesztés.hu
FórumGarázsprojectekCikkekSegédletekJf.hu versenyekKapcsolatokEgyebek
Legaktívabb fórumozók:
Asylum:    5444
FZoli:    4892
Kuz:    4455
gaborlabor:    4449
kicsy:    4304
TPG:    3402
monostoria:    3284
DMG:    3172
HomeGnome:    2919
Matzi:    2519

Pretender:    2498
szeki:    2440
Seeting:    2306
Geri:    2188
Orphy:    1893
Joga:    1791
Bacce:    1783
MaNiAc:    1735
ddbwo:    1625
syam:    1491
Asylum - Törzstag | 5444 hsz       Online status #72106   2007.10.22 18:19 GMT+1 óra  
Ja johogy mondod; a hanoira gondoltam mikor exponenciális müveletigényt irtam (2^n - 1)
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
fpeti - Törzstag | 1290 hsz       Online status #72102   2007.10.22 16:02 GMT+1 óra  
Egy jó okot már felfedeztem a rekurzió használatára;
nevezetesen, ha több, esetleg változó méretű adat keletkezik minden rekurzió előtt.
Ekkor iteratíve le kell ezeket tárolni, mondhtani komplett szimulálni kell a vermet különböző listákkal, valamint (én ezt bsp-használatakor vettem észre) le kell tárolni mindenhol, hogy melyik ágban volt, meg ilyenek.. ezzel ugyan gyorsabb, de a 8 soros szimpla kódból 5 képernyőnyi elég bonyi kódhegy lesz, és nagyon sok a buglehetőség (pl túlcsordulás a szimlulált vermekben).
Ekkor értettem meg, hogy pl Quake-I-II-III -kban is miért van rekurzió a bsp használatakor.
Ennek ellenére nemrég mondta nagy viccesen az infótanárom, hogy "a programozók soha nem használják a rekurziót, mer' lassú " - faktoriálison sokan nem jutnak túl ott fenn..
   
gaborlabor - Moderátor | 4449 hsz       Online status #72067   2007.10.22 05:52 GMT+1 óra  
hanoi tornyai... hmm tipikus példa a rekurzió alkalmazására, de állítólag meg lehet oldani nem rekurzívan is...bár sosem láttam rá pldát.

   
Asylum - Törzstag | 5444 hsz       Online status #72066   2007.10.22 05:48 GMT+1 óra  
Nos a Hanoi tornyai problémát csak rekurzívan lehet ha jól tudom. Ezért van az hogy már viszonylag kis n ekre is kib. sok ideig tart még egy gépnek is.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
gaborlabor - Moderátor | 4449 hsz       Online status #72062   2007.10.22 04:46 GMT+1 óra  
minden problémát, aminek van rekurzív megoldása, meg lehet oldani iteratívan is. más kérdés, hogy bár alapból az emberi agy iteratívan gondolkodik (tisztelet a kivételnek ), sokszor kézenfekvőbb a rekurzió alkalmazása.
szerintem nem érdemes nagy, sebességkritikus programokban rekurziót alkalmazni, mert lassú is, meg a veremtúlcsordulás veszélye is fennáll, meg talán debuggolni is nehezebb. de jó programozási gyakorlat a függvényhívások, a paraméterátadás és a stack működésének megértéséhez.

   
Joga - Törzstag | 1791 hsz       Online status #72061   2007.10.22 04:43 GMT+1 óra  
Szvsz a rekurzió azért van, hogy legyen, én még nem kerültem szembe olyan esettel, hogy ne lehetett volna megoldani mással...

pl for ciklussal gyakran lehet helyettesíteni
(ಠ ›ಠ) Stewie!

   
dvorgaz - Törzstag | 575 hsz       Online status #72059   2007.10.22 04:35 GMT+1 óra  
profi programokban amúgy milyen gyakran használnak rekurzív függvényeket?
különféle forráskódokban gyakran látok rekurziót, csak utálom, mert nem látom át mit is csinálnak
   
Asylum - Törzstag | 5444 hsz       Online status #72057   2007.10.21 17:11 GMT+1 óra  
rekurzio müveletigényes (exponenciális) és memoriaigényes (gondold meg mindig el kell tárolni a stackben a regiszterek tartalmát meg a visszatérési cimet )

szal akkor már inkább for ciklus
de a matekosok meg azé vannak hogy ne kelljen for ciklus
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
B@z - Törzstag | 436 hsz       Online status #72056   2007.10.21 16:33 GMT+1 óra  
jah, aztan majd megeszi a procit a fene xD
meg amugy is a tervezeshez is kellett, (hogy tudjam hogy az enemyknek hogy osszam el ), szal ott eleg nehez rekurzivozni

de asylum megoldasa jo volt thx~

   
Wolfee - Törzstag | 1336 hsz       Online status #72052   2007.10.21 14:37 GMT+1 óra  
irj ra egy rekurziv fugvenyt..
FZoli jóváhagyásával XD

   
B@z - Törzstag | 436 hsz       Online status #72045   2007.10.21 10:36 GMT+1 óra  
ferchild: hat a +ok voltak szamtani sorozat, de a masik nem.. ha jol tom.. xD

asylum:

   
Asylum - Törzstag | 5444 hsz       Online status #72043   2007.10.21 09:44 GMT+1 óra  
a(n + 1) = (n + 1) * a0 + n(n + 1)

ahol a0 = 4

vagyis pl. a4 = 4 * 4 + 3 * 4 = 28

C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
ferchild - Törzstag | 815 hsz       Online status #72042   2007.10.21 09:36 GMT+1 óra  
most lehet én vagyok hülye de ez véletlen nem egy számtani sor?
és annak van összegképlete
a differencia meg 2
Feci Barath (by Kuz)
XD
http://már nem elérhető...új lesz
   
B@z - Törzstag | 436 hsz       Online status #72041   2007.10.21 09:13 GMT+1 óra  
Hi
nemtom hogy jo helyre irok ,de kene egy kis segitseg ;;
egy rpg jatekban szeretnek szintlepes rendszert kidolgozni, de fogalmam sincs hogy milyenek az ilyenek..

szal amire en gondoltam (most csak egy pelda, ezert kis szamok )



    Szint - szintlepeshez szukseges xp
    1 - 4
    2 - 10
    3 - 18
    4 - 28
    5 - 40


tehat ahogy eszrevettetek, minden 1es szintnel az elozo +2 pont kell meg a meglevon kivul

tehat

    Szint - szintlepeshez szukseges xp - elozohoz kepest mennyivel novexik
    1 - 4 - 4
    2 - 10 - 6
    3 - 18 - 8
    4 - 28 - 10
    5 - 40 -12


na ez szep es jo (nemtom hogy illik e RPGbe az ilyen gondolkodas, ha nem, szoljatok xD), de ezt hogy tudom kiszamolni?
tehat hogy a 20. szinten osszesen mennyi xpnek kell lennie a szintlepeshez
ugye ha for ciklussal kene, az sztem gaz lenne szal ha lehet ilyet nem szeretnek.
Azt ki tom szamolni, hogy az elozo (tehat a 19. szint) hez kepest mennyivel no. ugye ez egy normal szamtani sorozat..
nade hogy a teljes xpnek mennyinek kene lenni, arrol foggalmam sincs......
pls help T_T

   
Joga - Törzstag | 1791 hsz       Online status #63486   2007.07.16 08:45 GMT+1 óra  
Köszi!

Igazából a kamerához kellett....A fizikára meg majd ODE-t, vagy valami mást fogok tanulni....
(ಠ ›ಠ) Stewie!

   
nagyy - Törzstag | 248 hsz       Online status #63420   2007.07.15 14:09 GMT+1 óra  
Idézet

Joga
Honnan lehet megtudni, hogy egy szakasz elmetsz-e egy háromszöget, és ha igen, akkor hol?


Nézz szét ezen az oldalon, itt kb az összes létező ütközés detektáló algoritmusról van infó:
http://www.realtimerendering.com/int/
   
Orphy - Törzstag | 1893 hsz       Online status #63409   2007.07.15 11:49 GMT+1 óra  
Erre első körben azt mondanám, h olyan pontokat keress, amik:

rajta vannak a szakaszon,
és a háromszögön belül találhatóak.


A és B ponton által meghatározott szakasz egyenlete:

Kód:
Av * t + Bv * (1-t)


ahol Av és Bv az a A és B pontba mutató vektorok, t pedig egy paraméter 0 és 1 között.
A fenti egyenletet ki lehet fejteni x,y,z koordinátákra.

Ezek után a kapott xyz koordinátás egyenleteket összehoznám a háromszög pontjaival: ahhoz hogy egy pont a háromszögön belül legyen ugye a 3 pontjának koordinátái egy feltételrendszert alkotnak.

szvsz ebből már ki kell h jöjjön valami
   
Joga - Törzstag | 1791 hsz       Online status #63361   2007.07.15 05:33 GMT+1 óra  
Még egy kérdés.....
Honnan lehet megtudni, hogy egy szakasz elmetsz-e egy háromszöget, és ha igen, akkor hol?
(ಠ ›ಠ) Stewie!

   
TPG - Tag | 3402 hsz       Online status #63170   2007.07.13 10:46 GMT+1 óra  
Idézet
Joga :....
2: Nah szóval van három pont: A,B,C.....Ez ugye meghatároz egy síkot...Ez a sík pedig kettő részre vágja a teret....hogyan lehet megtudni, hogy pl D és E pont ugyanazon az oldalon vannak e?
.....


Rendezed 0-ra a sík egyenletét, az adott pontok koordinátáit behelyettesíted és az eredményeknek megnézed az előjelét, ha negatív a pont a sík alatt van, ha pozitív akkor felette.
Reality is almost always wrong. - House

   
Joga - Törzstag | 1791 hsz       Online status #63169   2007.07.13 10:28 GMT+1 óra  
Kettő kérésem lenne....:
1: Van ugye a talajkövető algoritmus, vagy mi, az kéne nekem, tehát, hogy a tárgy alatt lévő háromszögeket a tárgy pontosan kövesse.
2: Nah szóval van három pont: A,B,C.....Ez ugye meghatároz egy síkot...Ez a sík pedig kettő részre vágja a teret....hogyan lehet megtudni, hogy pl D és E pont ugyanazon az oldalon vannak e?

Felőlem angol nyelvű leírásokat is adhattok, nekem az is jó
(ಠ ›ಠ) Stewie!

   
TPG - Tag | 3402 hsz       Online status #60456   2007.06.19 14:03 GMT+1 óra  
Kösz a válaszokat, asszem akkor ezzel nem nagyon erőlködöm.
Reality is almost always wrong. - House

   
Jedi - Tag | 175 hsz       Online status #60455   2007.06.19 13:32 GMT+1 óra  
Idézet
TheProGamer :
Van valakinek ötlete hogy hogyan lehet RGB kódból a hozzátartozó fény hullámhosszát kiszámolni?



Nem lehet. Az RGB ugyan több információt tartalmaz, mint a hullámhosz (pluszban színtelítettség és fényerő), viszont nem fedi le a teljes spektrumot. Néhány RGB érték megfelel a hullámhosszak egy részének. Pl. a (1,0,0)-hez 650 nm - 700 nm közötti hullámhossz is megfelel.

A legtöbb amit tehetsz, hogy fogsz egy táblázatot (pl. amit itt van), ahol néhány hullámhossznak szerepel az RGB értéke, majd mondjuk pl. legkisebb négyzetes hibaillesztéssel megkeresed az adott RGB-hez legközelebb álló hullámhosszt.

   
Matzi - Szerkesztő | 2519 hsz       Online status #60436   2007.06.19 11:44 GMT+1 óra  
Szerintem ez mundán eszközökkel közelíti a lehetetlent. Szóval nemhiszem, hogy épeszű megoldást találnál rá, már csak azért is, mert a frekvencia egy skála, addig az rgb egy 3dimenziós tér. Valamelyest át lehet számítani (a bátyám világítás technikus, ő mesélt erről), de az fix, hogy nem egyszerű.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
TPG - Tag | 3402 hsz       Online status #60435   2007.06.19 11:29 GMT+1 óra  
Nem ez kellene, hanem az hogy adott RGB(x,y,z) színhez milyen hullámhossz tartozik abban az esetben ha ez meghatározható (tehát az adott szín nem fehér,fekete vagy a kettő átmenete). X,y,z lehet bármilyen 1 és 0 közti szám.
Reality is almost always wrong. - House

   
Wolfee - Törzstag | 1336 hsz       Online status #60431   2007.06.19 11:10 GMT+1 óra  
hát ha átlag hullámhossz kell, akkor én úgy számolnám, h (red*a vörös hullámhossza+blue*a kék hullámhossza+green*a zöld hullámhossza)/3. a vörösnek, zöldnek, kéknek pedig 100, h fenn van a neten a hullámhossz értéke, de sztem még a négyjegyű fv. táblázatban is. de lehet, h félreérem a problémádat
FZoli jóváhagyásával XD

   
TPG - Tag | 3402 hsz       Online status #60430   2007.06.19 11:02 GMT+1 óra  
Van valakinek ötlete hogy hogyan lehet RGB kódból a hozzátartozó fény hullámhosszát kiszámolni?
Reality is almost always wrong. - House

   
Orphy - Törzstag | 1893 hsz       Online status #55217   2007.05.18 01:12 GMT+1 óra  
Nah, most van meg
A hiba ott volt, hogy a két egyeneshez két különböző t érték tartozik...

Helyesen a két egyeneshez tartozó egyenletek:

Kód:
e1:
x = Ax + ux * t1
y = Ay + uy * t1
z = Az + uz * t1

e2:
x = Bx + vx * t2
y = By + vy * t2
z = Bz + vz * t2


A metszéspontot a köv. képpen lehet kiszámítani:

Kód:
e1 = e2 - ből a koordináták szerint kifejtve, majd átrendezve a következő adódik:

(ux * t1) - (vx * t2) = Bx - Ax
(uy * t1) - (vy * t2) = By - Ay
(uz * t1) - (vz * t2) = Bz - Az


A fenti egyenletrendszer végeredménye a két egyenes egyenletének t paramétere, ami nem feltétlenül egyenlő!

t1 -et vagy t2-t visszaírva megkapjuk a metszéspont koordinátáit, és ez így akkor is működik, ha a 3-ból csak 2 dimenziót használunk, a harmadikat pedig 0-nak hagyjuk.

Ha nincsen metszéspont, akkor az egyenletrendszernek elvileg nem lesz megoldása - ezt sajnos nem volt időm ellenőrizni, de majdnem biztos.



Jedi, kösz a helpet
   
Orphy - Törzstag | 1893 hsz       Online status #55205   2007.05.17 16:45 GMT+1 óra  
A feltételvizsgálatot a fórumon lehagytam, jogos...

Egyébként z-vel is ugyanez a helyzet...
Egyedül y-ra jön ki ebből, hogy 1...

...

hmmm, azt hiszem, most esett le!

Ha az y-ból kijött 1-et visszahelyettesítem a paraméteres egyenletbe, akkor kijön a többi...

x = Ax + t * ux 4 + 1 * (-2) = 2
y = Ay + t * uy 2 + 1 * (-1) = 1
z = Az + t * uz 1 + 1 * (-1) = 0

Akkor csak rosszul értelmeztem az eredményt...
Tehát, ha egyik komponensre sem lehet elvégezni az osztást, akkor párhuzamos, ha két különböző t-t kapok, akkor pedig nem metszi.

Köszi

Amin most beugrott még kérdésként:
Ezt a megoldást lehet büntetlenül alkalmazni akkor is, ha a 3 dimenziós pontból és irányvektorból a 3-ikat nem használom (ergó 2D-ként...) ?

gyors próba:

A( 1; 1; 0) u( 0; 1; 0 )
B( 3; 2; 0) v( 1; 0; 0 ) Metszéspont: X( 1; 2; 0 )

tx = (Ax - Bx) / (vx - ux) = (1 - 3) / (1- 0) = -2 / 1 = -2
ty = (Ay - By) / (vy - uy) = (1 - 2) / (0- 1) = -1 / -1 = 1
tz - re nem végezhető el

Elvileg ez azt jelentené, hogy nem metszik egymást, de...
X pont B ponttól x irányban pontosan -2 távolságra,
X pont A ponttól y irányban pedig pont 1 távolságra van...

Hmmm, érdekes... Hogy is van ez?
Most már fáradt vagyok , holnap átgondolom
   
Jedi - Tag | 175 hsz       Online status #55198   2007.05.17 14:30 GMT+1 óra  
Idézet
Orphy :
tx = (Ax - Bx) / (vx -ux)



Ehem, ehhez az osztáshoz már alapból kell egy feltételvizsgálat, hogy a (vx-ux) != 0, különben nem tudod átrendezni az egyenletet...

Az y komponensre el tudod végezni az osztást és meg is kapod, hogy t = 1. Ha egyik komponensre sem lehet elvégezni az osztást, akkor a két egyenes párhuzamos. Ha két komponensre különböző t értéket kapsz, akkor meg nem metszi egymást a két egyenes.

   
Asylum - Törzstag | 5444 hsz       Online status #55196   2007.05.17 14:18 GMT+1 óra  
Ööö az elözö hozzászolásom törölve lett v mi?
Ha igen akkor nem linkelem be megint
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Orphy - Törzstag | 1893 hsz       Online status #55190   2007.05.17 14:06 GMT+1 óra  
Ilyesmivel próbálkoztam, csak nem a t paraméterrel, hanem már átszámolva x,y,z koordinátákra...

Sajnos ezzel is ugyanaz a gondom van...

A(0) = (4;2;1), u( -2; -1; -1 )
B(0) = (4;0;1), v( -2; 1; -1 )

Ez a két egyenes elvileg az X( 2; 1; 0 ) pontban metszi egymást.
Ha a kezdőpontokhoz hozzáadjuk az irányvektort, mindkettőnél ezt a pontot kapjuk elsőre.

Viszont ha ezeket behelyettesítem:

tx = (Ax - Bx) / (vx -ux)

tx = (4 - 4) / [ (-2) - (-2) ]
tx = 0 / 0

   
Jedi - Tag | 175 hsz       Online status #55185   2007.05.17 13:34 GMT+1 óra  
Idézet
Orphy :
Hmm, srácok, gondban vagyok

Hogyan lehet megállapítani azt, hogy 2 3D-s egyenes hol metszi egymást?
Akárhogyan is próbálkoztam, 3 ismeretlenre csak 2 egyenletem volt...

Ha pedig az x,y,z koordinátákat kifejeztem, akkor meg számolásnál 0-val osztás jött ki valamelyikre...





Ha parametrikus formában írod fel, akkor a paraméterre meg tudod oldani (ha van metszéspont). Onnan meg visszahelyettesítve megkapod a metszéspontot.

Pl.

A(t) = A0 + t * u
B(t) = B0 + t * v

Azt kell nézni, hogy A(t) = B(t), azaz átrendezve:

A0 - B0 = t * (v - u)

Ez 3D-ben három egyenlet, egy ismeretlennel (t).


Egyébként ezen az oldalon az 5.18-ban van egy egyenes-egyenes távolságszámító algoritmus, ami a legközelebbi pontokat is megadja. Ezt is lehet metszéspontszámításhoz használni.

   
Orphy - Törzstag | 1893 hsz       Online status #55182   2007.05.17 13:03 GMT+1 óra  
Hmm, srácok, gondban vagyok

Hogyan lehet megállapítani azt, hogy 2 3D-s egyenes hol metszi egymást?
Akárhogyan is próbálkoztam, 3 ismeretlenre csak 2 egyenletem volt...

Ha pedig az x,y,z koordinátákat kifejeztem, akkor meg számolásnál 0-val osztás jött ki valamelyikre...

   
Orphy - Törzstag | 1893 hsz       Online status #54364   2007.05.11 04:46 GMT+1 óra  
Azt hiszem, ezt kerestem...

Egyenes 2D:
Ax + By + C = 0, ahol C konstans, A,B pedig az egyenes normálvektorának x és y koordinátái

Egyenes egyenlete 3d-ben parametrikusan és szimmetrikusan
http://www.ucl.ac.uk/Mathematics/geomath/level2/fvec/fv3.html

Pont-egyenes távolság 3D-ben (2D-ben ugyanezzel a képlettel kell számolni)
http://mathworld.wolfram.com/Point-LineDistance3-Dimensional.html

A 2D és a 3D egyenleteket viszont úgy látom, nem fogom tudni közös nevezőre hozni, kénytelen leszek csinálni egy Line2D-t, és egy Line3D-t...
   
Orphy - Törzstag | 1893 hsz       Online status #54333   2007.05.11 01:50 GMT+1 óra  
Köszi a segítséget, azt hiszem, körbenézek még ilyenolyan ánglish könyvekben is...

Egy matek-könyvtárat készítek játékhoz, és oda kellenének a dolgok...
Igaz, 2D-s játék lenne, de gondoltam, akkor már miért ne legyen felkészítve 3D-re is...

A fontosabb dolgokat - (egyenes-egyenes metszéspont, egyenes-pont távolság, egyenes-egyenes távolság, egyenes-kör ütközésvizsgálat) természetesen tudnia kell számolni...

Egyelőre még nem látom pontosan, a parametrikus megadással ezeket hogyan fogom, de régen is volt... Utánanézek
   
Jedi - Tag | 175 hsz       Online status #54263   2007.05.10 09:18 GMT+1 óra  
Idézet
Orphy :
Hello,

keresgéltem Google-n, de cserben hagyott...

Az egyenes, kör, stb egyenletét keresem, 3D-re vonatkoztatva...
Tud valaki segíteni?

Suliban is csak 2D volt, és neten is csak olyat találtam...



Ezeket parametrikusan a legkönnyebb megadni.

Pl. A,B-n keresztülmenő egyenes egyenlete:
E(t) = A + (B - A) * t

Vagy egy köregyenelet:
K(t) = C + R * cos(t) * U + R * sin(t) * (N x U)
ahol
C a kör középpontja
R a sugár
P a középpontból a kör egyik pontja felé mutató egységvektor
N a kör síkjának normálvektora
(N x U) ez meg vektoriális szorzat akar lenni

   
Hacker - Törzstag | 567 hsz       Online status #54253   2007.05.10 07:36 GMT+1 óra  
Idézet
Orphy :
Hello,

keresgéltem Google-n, de cserben hagyott...

Az egyenes, kör, stb egyenletét keresem, 3D-re vonatkoztatva...
Tud valaki segíteni?

Suliban is csak 2D volt, és neten is csak olyat találtam...



A térben nem kör, hanem gömb van nem? Na mindegy, h segítsek is neked: http://mathworld.wolfram.com/topics/Geometry.html. Remélem innen már el tudsz indulni.
No [img] !
Programozz ne háborúzz!!!!

   
Orphy - Törzstag | 1893 hsz       Online status #54247   2007.05.10 07:16 GMT+1 óra  
Hello,

keresgéltem Google-n, de cserben hagyott...

Az egyenes, kör, stb egyenletét keresem, 3D-re vonatkoztatva...
Tud valaki segíteni?

Suliban is csak 2D volt, és neten is csak olyat találtam...
   
balogh9 - Törzstag | 801 hsz       Online status #47217   2007.02.12 08:31 GMT+1 óra  
_____________________
C++ && OGL
   
Asylum - Törzstag | 5444 hsz       Online status #47216   2007.02.12 08:24 GMT+1 óra  
Ahogy az öreganyó is mondta: határeset
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Joga - Törzstag | 1791 hsz       Online status #47207   2007.02.12 05:52 GMT+1 óra  
Thanx, ez nagyon kellett.......
(ಠ ›ಠ) Stewie!

   
balogh9 - Törzstag | 801 hsz       Online status #47203   2007.02.12 04:38 GMT+1 óra  
különböző tengelyekre különböző forgatási mátrixokat kell alkalmazni

Z tengely:
Kód:
cosα     sinα    0
-sinα    cosα    0
0        0       1


/ezt 3x3-es mátrixot szorzod a ponttal (amit el akarsz forgatni) ami egy 1x3 as mátrix ugyebár (x,y,z)/

X tengely:
Kód:
1     0            0
0     cosα         sinα 
0     -sinα        cosα


Y tengely:
Kód:
cosα     0           -sinα
0        1           0
sinα     0           cosα
_____________________
C++ && OGL
   
Asylum - Törzstag | 5444 hsz       Online status #47195   2007.02.11 16:13 GMT+1 óra  
Nem a forgatási mátrixxal? Nemvok benne biztos de vhogy igy néz ki

sin alfa cos alfa
-cos alfa sin alfa

Ha mondjuk a pont x,y akkor megszorzod ezzel a mátrixxal és megkapod az aflával elforgatott koordinátákat. Síkban megy
Térben ez sztem akkor a z körüli forgatást jelenti (ami síkban nemlátszik mert merőleges rá de az origóban van)
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Joga - Törzstag | 1791 hsz       Online status #47185   2007.02.11 10:37 GMT+1 óra  
Nem tudja valaki, h hogyan lehet elforgatni egy pontot a Y tengely körül alfával?

A kordinátarendszer opengl-es, nem az az egy síknegyedes fordított féle, amit a legtöbb pascalos unit használ, forgatásnál pedig elég pozitív számmal az óramutató járásával megegyező irányban fogatni.
(ಠ ›ಠ) Stewie!

   
Lazarus - Törzstag | 313 hsz       Online status #41900   2006.12.23 14:54 GMT+1 óra  
Köszönöm, közben beast segített megoldani

MapStartX = 345;
MapStartY = 45;
COS_45 = 0.707106781186548;
SIN_45 = -COS_45;
TH = 30;
iso_side = TH * 1.414213

mp_X = tempX - MapStartX;
mp_Y = tempY - MapStartY;

mp_Y = mp_Y * 2;

p_X = (mp_X * COS_45 - mp_Y * SIN_45);
p_Y = (mp_X * SIN_45 + mp_Y * COS_45);

row = p_X / iso_side;
col = p_Y / iso_side;
col = Math.abs(col - 13) +1;

row = row - 1;
█▓▒░ All system gone, prepare for downcount! ➡ ➎➍➌❶ Offblast! ➔
   
kicsy - Szerkesztő | 4304 hsz       Online status #41892   2006.12.23 12:30 GMT+1 óra  
Egy lehetséges megoldás:
az 1,1 pont balszélső sarkához viszonyítva (illetve gyakorlatilag bármilyen fix ponthoz viszonyítva) az egér koordinátái alapján 5 négyzet pontossággal meg lehet állapítani hol áll:

Ezt még tovább kell bontani négy kvadránsra, hogy a következő lépésben tudjuk, melyik élet kell vizsgálni.
Ezután a négyzetet határoló ferde egyenesek egyenletét kell kiszámolni. (Ami könnyen megvan, Pitagorasz-tétellel meredekség (ami ugye fix, tehát nem is kell élenként kiszámolni), pontnak meg jó az egyik sarokpont) Ha ez megvan, akkor már csak meg kell vizsgálni, hogy a kurzor a megfelelő él felett vagy alatt van-e (egyenes egyenlete alapján, pl. y-2 = 3x + 6 egyenlet esetén ha y-2 < 3x+6, ahol (x,y) a kurzor koordináták, akkor a kurzor az egyenes alatt van, ha nagyobb, akkor fölötte.)
kicsy ● SilentVertigo Team - project Solarah
http://blog.yscik.com
   
Lazarus - Törzstag | 313 hsz       Online status #41879   2006.12.23 11:03 GMT+1 óra  
Hali lenne egy nehéz kérdésem (számomra az)

Hogy lehet a kurzor helyéből (x, y) megállapítani hogy melyik kocka fölött van?

Itt a kép, igyekeztem mindent feltüntetni
http://www.send2u.hu/getpic/57d4002acbab8c23e2059001496f0515.jpg

Köszi előre is
█▓▒░ All system gone, prepare for downcount! ➡ ➎➍➌❶ Offblast! ➔
   
Matzi - Szerkesztő | 2519 hsz       Online status #38197   2006.11.25 04:18 GMT+1 óra  
Nekem ilyenen nem problémázott, szóval nemtudom mi lehet vele a gond.

Nincs mit!
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
gaborlabor - Moderátor | 4449 hsz       Online status #38196   2006.11.25 04:10 GMT+1 óra  
Mostmár majdnem jó!!
A lényeg, vagyis az eredmény jó, de kiiratás után el is száll a progi, "stack around the variable 'inpu' was corrupted" üzenettel. Azzal a változóval van a baja, amibe beolvasom a számot, pedig az is signed char típusú.
Mondjuk a lényeg az, hogy az eredmény jó, úgyis át kell írnom pascalosra!

KÖSZI!!!

   
Matzi - Szerkesztő | 2519 hsz       Online status #38194   2006.11.25 03:58 GMT+1 óra  
Látszik, hogy siettem kajálni és nem írtam be a kódot. Szóval elronottam a nevét a fv-nek, a bit eltoláskor kihagytam az értékadást. A hibát lehet, hogy az okozza nálad, hogy belenyúlok a paraméterbe, de nekem a VC nem visított, de azért javítottam.
Kód:
signed char Sig(signed char szam2)
{
signed char result=0,szam=szam2;
result=result | (szam&128); result=result>>1;
result=result | (szam&128); result=result>>1;
result=result | (szam&128); result=result>>1;
result=result | (szam&128); result=result>>1;
result=result | (szam&128); result=result>>1;
result=result | (szam&128); result=result>>1;
result=result | (szam&128); result=result>>1;
result=result | (szam&128);
// Végigtoltuk az előjelbitet, eredmény a -1 2es komplemense,
// ha negatív a szám, ha nem, akkor 0

result= result | (szam&1); szam=szam>>1;
result= result | (szam&1); szam=szam>>1;
result= result | (szam&1); szam=szam>>1;
result= result | (szam&1); szam=szam>>1;
result= result | (szam&1); szam=szam>>1;
result= result | (szam&1); szam=szam>>1;
result= result | (szam&1);
// végig toljuk a hét adatbitet, és ha bármelyik egyes,
// beírjuk az eredmény utolsó bitjére
// a eddig nullán álltunk, akkor ez egyre változtat,
//ha -1en, akkor marad minden

return result;
}
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.