játékfejlesztés.hu
FórumGarázsprojectekCikkekSegédletekJf.hu versenyekKapcsolatokEgyebek
Legaktívabb fórumozók:
Asylum:    5440
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:    2185
Orphy:    1893
Joga:    1791
Bacce:    1783
MaNiAc:    1735
ddbwo:    1625
syam:    1491
Frissebbek | Korábbi postok
[1] [2] [3] [4] > 5 < [6] [7] [8] [9] [10] [15] [20] [21]
zeller - Törzstag | 464 hsz       Online status #179467   2012.04.28 16:47 GMT+1 óra  
Na. Dr Sor Kalmant kerdeznem, hogy hogyan kell bigintegert implementalni.
A koncepcio erdekelne.
Otleteim:
binaris string, csak ezzel hogyan muvelek?
particionalom 32 vagy (n) bites blokkokra.
Szinten, hogyan muvelek veluk? (Mmint muveleteket).
Extrem high math nem erdekel, mert azt ugysem fogom fel...

   
Pretender - Törzstag | 2498 hsz       Online status #178993   2012.04.19 20:57 GMT+1 óra  
eddig oké... és akkor mi van, ha 0? ez volt az alapvető kérdésem, de már mondtam: megoldódott

   
ddbwo - Tag | 1625 hsz       Online status #178992   2012.04.19 20:56 GMT+1 óra  
akkor if-eld le.

// megnéztem, lapot csinál a cuccból.

if (m[ i ] [ i ])

xD

Ezt a hozzászólást ddbwo módosította (2012.04.19 21:10 GMT+1 óra, ---)
A Half-Life 2: Deathmatch promóció megszűnt! [B¤°
Kezdetben volék az üresség. Ám akkor a Struktúrfüggöny megteremté az Urat.
DrunkenDragon* Blackwolf
   
Pretender - Törzstag | 2498 hsz       Online status #178991   2012.04.19 20:54 GMT+1 óra  
tessék:
Kód:
0 a b c
d e f g
h i j k
x y z w

itt a nagy okosságodat tekintve:
Kód:
divider = m[0][0] = 0.0f
inv_divider = 1.0f / divider = ?

   
ddbwo - Tag | 1625 hsz       Online status #178990   2012.04.19 20:38 GMT+1 óra  
Azért megnézném azt a mátrixot, amiben a szabályban lekért adatok közül bármelyik 0 lehet...

Ezt a hozzászólást ddbwo módosította (2012.04.19 20:55 GMT+1 óra, ---)
A Half-Life 2: Deathmatch promóció megszűnt! [B¤°
Kezdetben volék az üresség. Ám akkor a Struktúrfüggöny megteremté az Urat.
DrunkenDragon* Blackwolf
   
Pretender - Törzstag | 2498 hsz       Online status #178988   2012.04.19 20:34 GMT+1 óra  
Idézet
Asylum :
A gauss eliminácio eredeti algoritmusa azt választja ki amelyik nem nulla (hiszen a mátrix sorait tetszölegesen lehet cserélgetni).


de akkor változik a transzformáció, nem?

@ddbwo: én ezt tudom... én is ezt mondtam. Én megoldást kértem a problémára, de már mondom, meglett máshogy (determináns)
mellesleg, ha divider = 0, akkor szerinted 1 / divider az mi lesz?

   
Asylum - Törzstag | 5440 hsz       Online status #178985   2012.04.19 20:08 GMT+1 óra  
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
ddbwo - Tag | 1625 hsz       Online status #178983   2012.04.19 19:46 GMT+1 óra  
Most csak azért is kifejtem amit nem mondtam el érthetően.

kiragadva:

Kód:
for (int i=0; i<4; i++)
{
    float divider = m[ i ] [ i ];
}


xx -- -- --
-- xx -- --
-- -- xx --
-- -- -- xx

Osztásnál ezek lesznek a kiválasztott elemek, így az osztó nem lehet nulla sehol...

Ha mégsem szeretnél nullát osztani:

Kód:
inverse_divider = 1.0/divider; // ami tuti nem lesz nulla
mat.m[i][k] *= inverse_divider;
A Half-Life 2: Deathmatch promóció megszűnt! [B¤°
Kezdetben volék az üresség. Ám akkor a Struktúrfüggöny megteremté az Urat.
DrunkenDragon* Blackwolf
   
Asylum - Törzstag | 5440 hsz       Online status #178981   2012.04.19 18:46 GMT+1 óra  
A gauss eliminácio eredeti algoritmusa azt választja ki amelyik nem nulla (hiszen a mátrix sorait tetszölegesen lehet cserélgetni).
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Pretender - Törzstag | 2498 hsz       Online status #178971   2012.04.19 17:48 GMT+1 óra  
@ddbwo: mihe? én tényt közöltem, hogy a gauss elimináció nem megoldható, ha a főátlón valamelyik elem 0, mert a 0-val való osztás értelmetlen. Ezáltal a mondandód értelmetlen (persze amúgy sem értem, mint úgy általában )

Közben megoldódott amúgy.

   
ddbwo - Tag | 1625 hsz       Online status #178965   2012.04.19 16:59 GMT+1 óra  
Először kipróbálni vagy közölni velünk mi történik, és minek kéne történnie pontosan, utána kérdezni.

Ránézésre:

divider - nem lehet sose nulla. i, i, vagyis keresztbe a fő tengelyen megy át a mátrixon.
scalar - lehet, de az nem érdekes, mert kivonás. Ha nulla, nem von ki.
A Half-Life 2: Deathmatch promóció megszűnt! [B¤°
Kezdetben volék az üresség. Ám akkor a Struktúrfüggöny megteremté az Urat.
DrunkenDragon* Blackwolf
   
Asylum - Törzstag | 5440 hsz       Online status #178948   2012.04.19 14:13 GMT+1 óra  
Hasznald a laplace-fele kifejtesi tetelt, sokkal egyszerubb (glprojects).
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Pretender - Törzstag | 2498 hsz       Online status #178947   2012.04.19 14:01 GMT+1 óra  
Kód:
inline static const Matrix Inverse(const Matrix& _mat)
{
    Matrix mat = _mat;
    Matrix result = Matrix::Identity;

    float divider;
    float scalar;

    for (int i = 0; i < 4; i++)
    {
        divider = mat.m[i][i];

        for (int k = 0; k < 4; k++)
        {
            mat.m[i][k] /= divider;
            result.m[i][k] /= divider;
        }

        // every column
        for (int k = 0; k < 4; k++)
        {
            // except the current
            if (k == i)
                continue;

            scalar = mat.m[k][i];

            // every row
            for (int j = 0; j < 4; j++)
            {
                mat.m[k][j] -= mat.m[i][j] * scalar;
                result.m[k][j] -= result.m[i][j] * scalar;
            }
        }
    }

    return result;
}

van egy ilyen csudijó kis algoritmusom (olyasfajta Gauss-elimináció akar lenni). A problémám a következő: ugyebár le kell osztani az i. sor i. elemével (m[ i ][ i ] ), ahhoz hogy 1-et kapjunk, hogy kivonogassunk, stb. mindenki ismeri az algoritmust.

Mi van akkor, ha az i. sor i. eleme 0? A mátrix értelemszerűen 4x4-es

   
ramoryan - Törzstag | 442 hsz       Online status #176011   2012.03.08 08:37 GMT+1 óra  
Nagyon szépen köszönöm.

   
barack1 - Tag | 94 hsz       Online status #175983   2012.03.07 14:44 GMT+1 óra  
Idézet
ramoryan :
Nagyon dedós kérdésem lenne (azokhoz képest, amiket ti itt nyomtok).

Van egy sprite-om, aminek a szögét meg tudom adni az Angle paranccsal.
Szeretném, ha a sprite-om követné az egeremet, de ehhez tudnom kell, milyen szöget zárnak be.

Találtam rá egy képletet, ami elméletileg jó:

r := (Player.X*Mouse.Y - Mouse.X*Player.Y)/SQRT(Player.X*Player.X+Player.Y*Player.Y)/SQRT(Mouse.X*Mouse.X+Mouse.Y*Mouse.Y);

szog:=(ArcCos(r)/2/PI*360+90)%180;

Na már most mi a tök az a %180?
Ugyanis ezt egy javascriptes kódból alakítottam át és ott volt ilyen hogy %180, amit a Delphi nem értelmez.

De ha van valakinek jobb megoldása, kérem, írja már meg.
Most hétvégére terveztem egy kétnapos minigémet és kicsit elakadtam.



Delphiben a szöget így kell meghatározni:
szog := ArcTan2(Mouse.Y-Player.Y , Mouse.X-Player.X);

C++ -ban
szog = atan2f(Mouse.Y-Player.Y , Mouse.X-Player.X);

Az ArcTan2() függvény kimenete a teljes 360 fokos tartományt hibátlanul kezeli.
   
Matzi - Szerkesztő | 2519 hsz       Online status #175696   2012.03.02 18:37 GMT+1 óra  
ramoryan:
A % az a maradékos osztás, szép magyar szóval a modulo. A pascal és a delfi ha jól rémlik mod néven ismeri.

Pl:
X mod 180
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
Pretender - Törzstag | 2498 hsz       Online status #175695   2012.03.02 18:32 GMT+1 óra  
én ezt használom 3d-ben:
Kód:
float Avatar::GetAngle(const Vector3& p_Start, const Vector3& p_End)
{
    float distance = Vector3::Distance(p_End, p_Start);
    float angle = asinf((p_End.X - p_Start.X) / distance);
    if (p_Start.Z > p_End.Z)
        angle = -angle + Scream::Pi;

    return angle;
}

ahol 2 dolog:
- start != end
- ez könnyen átalakítható 2d-be.
Illetve nyilvánvalóan ez radiánban adja meg a szöget.

A % pedig modulo

   
ramoryan - Törzstag | 442 hsz       Online status #175694   2012.03.02 18:24 GMT+1 óra  
Nagyon dedós kérdésem lenne (azokhoz képest, amiket ti itt nyomtok).

Van egy sprite-om, aminek a szögét meg tudom adni az Angle paranccsal.
Szeretném, ha a sprite-om követné az egeremet, de ehhez tudnom kell, milyen szöget zárnak be.

Találtam rá egy képletet, ami elméletileg jó:

r := (Player.X*Mouse.Y - Mouse.X*Player.Y)/SQRT(Player.X*Player.X+Player.Y*Player.Y)/SQRT(Mouse.X*Mouse.X+Mouse.Y*Mouse.Y);

szog:=(ArcCos(r)/2/PI*360+90)%180;

Na már most mi a tök az a %180?
Ugyanis ezt egy javascriptes kódból alakítottam át és ott volt ilyen hogy %180, amit a Delphi nem értelmez.

De ha van valakinek jobb megoldása, kérem, írja már meg.
Most hétvégére terveztem egy kétnapos minigémet és kicsit elakadtam.

   
Asylum - Törzstag | 5440 hsz       Online status #175346   2012.02.26 21:53 GMT+1 óra  
Kód:
(1 + h)^2 - 1    (1 + h) * (1 + h)    1
------------- =  ----------------- -  -  =
      h                  h            h

azaz

  1   2*h   h^2   1       
= - + --- + --- - -  = 2 + h
  h    h     h    h

és h tart 0-hoz tehát az egész tart 2-höz.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
terbed - Tag | 233 hsz       Online status #175344   2012.02.26 20:56 GMT+1 óra  
Hello!
Megint dilettánskodom egy kicsit.

lim h->0 (f(x+h)-f(x))/h)

Mi a határérték ha: f(x) =x^2 és x =1

Az eredmény elvileg 2
De sehogy sem tudok eljutni oda.

Szerk.:
Kösz Asylum

Ezt a hozzászólást terbed módosította (2012.02.27 06:51 GMT+1 óra, ---)
   
Asylum - Törzstag | 5440 hsz       Online status #175343   2012.02.26 20:04 GMT+1 óra  
Ha Z-ben nézed akkor igen, de modulo (maradékosztály) gyürüt irtál, ott viszont nincsenek negativ számok, mert pl. Z4 = { 0, 1, 2, 3 } és akkor -1. ami 0 - 1 azaz (2 + 2) - 1 azaz 3 (remélem nem fogják rám boritani a bevmatosok az asztalt ).

Az általad leirt { -n, ..., 0, ... n } pedig szerintem nem gyürü, mert egy számnak több inverze is lehet.

Ezt a hozzászólást Asylum módosította (2012.02.27 14:48 GMT+1 óra, ---)
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
zeller - Törzstag | 464 hsz       Online status #175339   2012.02.26 17:43 GMT+1 óra  
Na igen, de -1 mod 4 az -1 es nem 3... Nekem meg vannak negativ szamaim is.
Az egesz onnan indult, hogy egy tetszolegeset lepo visszacsatolt shift regisztert akartam tombben csinalni, a tulindexelest pedig ehhez le kell lekepezni a (0, len-1)-re. De vegul visszavettem az igenyeimbol es 1-es lepeseket egymas utan vegrehajtva mar semmi modulozas nem kell.
Mas kerdes, hogy egy lancolt listaval, vagy egy korbelancolt listaval sokkal konnyebb lenne.

   
Asylum - Törzstag | 5440 hsz       Online status #175331   2012.02.26 12:36 GMT+1 óra  
Modulo maradekgyürükben nincs ertelme a "negativ" szamnak, mert pl. Z4-ben -1 mod 4 az 3.
Additiv inverze az 1-nek pl. a 3 mert (3 + 1) mod 4 az 0. Szal egy zart keplet lehetne (n - x).
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
zeller - Törzstag | 464 hsz       Online status #175312   2012.02.25 21:47 GMT+1 óra  
Van egy modulo gyurum
R: {-n, ... 0, ... n}
Egy olyan egyszeru zart fuggveny kellene amelyik, 'a' eleme R-t 'a' additiv inverzere kepzi, ha 'a' negativ.
Tud vki segiteni?
-----
Szerk:
Lehetseges, hogy ez igy hulyeseg...
Mert ugye -1-nek 1 additiv inverze, de 3-is N4-en, de akkor ez mar lehet, hogy nem gyuru algebrai ertelemben, hanem valami mas. Na nekem olyan kellene, hogy -1-nek 3 inverze 1 viszont nem, ezt nem tudom hogy hivjak...

Ezt a hozzászólást zeller módosította (2012.02.26 08:54 GMT+1 óra, ---)

   
terbed - Tag | 233 hsz       Online status #175089   2012.02.23 12:01 GMT+1 óra  
Köszi!
Az abszolutertek zavart be kicsit, de igy mar etheto koszi mégegyszer.
   
Matzi - Szerkesztő | 2519 hsz       Online status #175080   2012.02.23 09:41 GMT+1 óra  
terbed:
A számlálót felbontod szorzatra, a 2-|x|-t átírhatod (2+x)-re, mert az abszolút érték itt sok meglepetést nem tartogat, 0 körül igen, itt nem.

(x+1)*(x+2)
----------------
(x+2)

Innen már nem nehéz kiszámolni, mert lehúzod a számlálóban és a nevezőben is az (x+2)-t. Ami marad, az az (x+1), ami meg itt -1.

Ezt csak a határérték miatt lehet megtenni, mert ugye nullával nem osztunk, de itt jó eséllyel nem lesz gond, mert a környéki határértékeket lehet vizsgálni. Ha lövésed sincs, vagy ellenőrizni akarod, akkor a wolframalfa.com-val tudsz vizsgálódni.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
terbed - Tag | 233 hsz       Online status #175078   2012.02.23 09:06 GMT+1 óra  
Helló!
(X^2+3x+2)/(2-|x|) ennek a határértéke ha x minusz kettőhöz tart. Valaki el tudná magyarázni hogy kell ezt megoldani? Lehet hogy egyszerű, de csak most vágtam a témába és nem teljesen világos.
   
barack1 - Tag | 94 hsz       Online status #173569   2012.01.26 10:56 GMT+1 óra  
Idézet
robee00 :
Sziasztok!

Van egy vektorom(legyen Gx,Gy), és egy szögem, 'a'. Ezt a vektort szeretném a-val elforgatni. Hogy kapom meg az elforgatott vektor koordinátáit, ha a G vektor kezdőpontja Px, Py.



Szia, a fiuk összevesztek a vektoron. Pedig csak egy kis elírás történt. Neked nem vektorod, hanem szakaszod van, aminek van kezdö és végpontja.

Szóval a feladat, hogy a szakasz végpontja forogjon a szakasz kezdöpontja körül.
Megoldás:

ujGx = (Gx-Px) * cos(alfa) - (Gy-Py) * sin(alfa) + Px;
ujGy = (Gx-Px) * sin(alfa) + (Gy-Py) * cos(alfa) + Py;
   
Pretender - Törzstag | 2498 hsz       Online status #173480   2012.01.25 05:20 GMT+1 óra  
@zeller: de az elmozdulásnak is csak iránya meg hossza van... az elmozdulás az az, hogy mennyivel és merre változik a test helyzete, nem?

   
zeller - Törzstag | 464 hsz       Online status #173475   2012.01.24 22:22 GMT+1 óra  
Annyiban maradhatunk, hogy a szabad/helyvektor mint fogalom santit.
De en ugy gondolom, hogy ha van egy mechanikai rendszered, akkor a nagysag+irany mar keves egy vektormennyiseg leirasara, mivel az tkp egy siksereget jelol ki.
Azonban en is csak laikus vagyok... Talan valaki megmondja a tutit. Es az is igaz, hogy a vektor != vektormennyiseg.

   
Asylum - Törzstag | 5440 hsz       Online status #173473   2012.01.24 22:01 GMT+1 óra  
Fizikához nem értek, biztos ugy van...én a fizikát is (hely)vektorokkal irom le.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
zeller - Törzstag | 464 hsz       Online status #173472   2012.01.24 21:42 GMT+1 óra  
Muszaki tudomanyokban van ertelme. Egy merev testre hato eroket eleg nehezen irsz le helyvektorokkal.
Szerk:
Ennel jobb pelda az elmozdulas. Ami szinten vektormennyiseg, es sokkal szemleletesebb. A testre hato eroknek csak tamadaspontja van...

Ezt a hozzászólást zeller módosította (2012.01.24 21:57 GMT+1 óra, ---)

   
Asylum - Törzstag | 5440 hsz       Online status #173471   2012.01.24 21:16 GMT+1 óra  
A "szabadvektor" csak valami agyatlan marhaság amit általános iskolában tanitanak...egy vektornak definicio szerint iránya van és hossza, tehát az ugyanolyan hosszu ugyanolyan irányitásu szabadvektorok ekvivalensek, azaz semmi értelme ilyenröl beszélni, hogy "kezdöpont" meg "végpont".
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
zeller - Törzstag | 464 hsz       Online status #173466   2012.01.24 20:54 GMT+1 óra  
A szabadvektornak van.

   
Asylum - Törzstag | 5440 hsz       Online status #173461   2012.01.24 20:18 GMT+1 óra  
Egy vektornak nincs kezdöpontja, a vektor az két darab szám: (x, y)
A forgatás pedig elég egyszerü:

ujx = x * cos(alfa) - y * sin(alfa)
ujy = x * sin(alfa) + y * cos(alfa)
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
robee00 - Tag | 90 hsz       Online status #173459   2012.01.24 20:11 GMT+1 óra  
Sziasztok!

Van egy vektorom(legyen Gx,Gy), és egy szögem, 'a'. Ezt a vektort szeretném a-val elforgatni. Hogy kapom meg az elforgatott vektor koordinátáit, ha a G vektor kezdőpontja Px, Py.

   
Pretender - Törzstag | 2498 hsz       Online status #172989   2012.01.19 19:00 GMT+1 óra  
az a baj, h amit írtam lent az jó lenne, csak az xy / w-ből hiányzik a w-ből a vertex z-je. De mivel a transzformáció során ugye az oszlopokkal megfelelő koordinátákat összeadjuk, így nem tudjuk a z-szeresét eltárolni az xy-nak. marad a shaderes, valszin nem ezen fog múlni...

   
Asylum - Törzstag | 5440 hsz       Online status #172986   2012.01.19 18:47 GMT+1 óra  
Valoban nem jo, csak tudni akartam h észreveszed-e Pedig egyszer kihoztam
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Pretender - Törzstag | 2498 hsz       Online status #172972   2012.01.19 14:04 GMT+1 óra  
Ez így szintén nem jó, ortogonális lett... az alap proj. mátrixhoz képest a képernyőn a modellnek sokkal kisebb része látszik pl.

szerk.:
mivel így az x,y-nak ugyan úgy "hiányzik" a w-ból a z

Ezt a hozzászólást Pretender módosította (2012.01.19 14:23 GMT+1 óra, ---)

   
Asylum - Törzstag | 5440 hsz       Online status #172966   2012.01.19 11:40 GMT+1 óra  
Kód:
tudjuk: z = near + q*(far - near)
azaz q = (z - near) / (far - near)
azaz q = z / (far - near) - near / (far - near)
es w := 1, ekkor a proj matrix:

sx   0            0  0
0  sy             0  0
0   0   1 / (f - n)  0
0   0  -n / (f - n)  1
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Pretender - Törzstag | 2498 hsz       Online status #172937   2012.01.19 07:22 GMT+1 óra  
Van egy projection mátrixom, alapból, ahogy minden földi halandónak van:
Kód:
m.m[0][0] = f / aspect;
m.m[1][1] = f;
m.m[2][2] = fPlane / fminusn;
m.m[2][3] = 1.0f;
m.m[3][2] = -nPlane * fPlane / fminusn;

ahol f a ctg(fov / 2), fplane, nplane a far és a near plane, fminusn pedig fplane - nplane

Ez ugye egy exponenciális depthet fog adni, mert amikor jön a perspective division, akkor a position.xyz /= position.w. Mivel vec4-ről van szó, aminek a w koordinátája nálam mindig 1, a z koordinátát a 3., a w koordinátát a 4. oszlop adja, így:
Kód:
position.z = (vertex.z * fplane / fminusn) + (1.0 * (-nplane) * fplane / fminusn)

Ehhez van egy táblázat itt hogy kb. milyen értékeket kap így a z:
Kód:
10.0 -> 0.0
100.0 -> 90.09
500.0 -> 490.49
stb.

A w pedig a vertex.z lesz, azaz 10.0 -> 10.0, stb. Ha ezt a z/w-t végrehajtjuk, akkor a fenti link szerinti értékeket kapunk.

Megpróbálkoztam azzal, hogy linearizáljam (ráadásul [0;1] intervallumba), amit úgy akartam elérni, hogy:
tudván, hogy a z/w végre fog hajtódni azt akartam elérni, hogy a mátrixszal való szorzás után a z maradjon az eredeti z, a w pedig a far plane legyen, hiszen a z/w így fogja megadni a valós z-t [0;1] intervallumban.
Módosítván így a mátrixot ezt kaptam:
Kód:
mat.m[0][0] = f / _aspect;
mat.m[1][1] = f;
mat.m[2][2] = 1.0f;
mat.m[3][2] = -_nPlane / fminusn;
mat.m[3][3] = _fPlane;

ahol ugye a z a 3. oszlopból jön, azaz ~ a vertex.z lesz (10.0 -> ~10.0, 100.0 -> ~100.0, stb.) a w pedig itt a mindig 1.0 * fPlane lesz. Ezután a z/w osztás után kijön a lineáris [0;1] depth. Tényleg az, csak valahogy ortogonális lett...

Tehát az elmélet félig jó, de a perspektíva eltűnt a dologból. Miért is?

szerk.:
esetleg azért, mert nem csak z/w, hanem xyz/w van?
aha, x és y is / w. Ami azt jelenti, hogy eredetileg az x és y osztva van a vertex.z-vel...

szerk. 2:
aha, ez így nem lesz teljesen jó lehet, hogy marad a shaderes pos.z = pos.z * pos.w, és akkor meg van oldva.

Ezt a hozzászólást Pretender módosította (2012.01.19 07:44 GMT+1 óra, ---)

   
Asylum - Törzstag | 5440 hsz       Online status #172360   2012.01.09 21:01 GMT+1 óra  
Mert olyan modellre akarok collision detectiont csinálni ami nem modelltérben van hanem pretransformed (pl. eltolt, elforgatott fal).
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Pretender - Törzstag | 2498 hsz       Online status #172356   2012.01.09 20:54 GMT+1 óra  
hogy de akkor nem...
Amúgy miért nem azt csinálod, hogy megvan a local bounding box, és azt a 8 pontot transzformálod world mátrixszal? ez így gyorsabb?

   
Asylum - Törzstag | 5440 hsz       Online status #172354   2012.01.09 20:50 GMT+1 óra  
Mi az a h? Amugy kész az OBB, lineáris idöben:

C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Pretender - Törzstag | 2498 hsz       Online status #172353   2012.01.09 20:47 GMT+1 óra  
amúgy az, hogy van gyöke nem az, h >= 0?

   
Asylum - Törzstag | 5440 hsz       Online status #172351   2012.01.09 20:40 GMT+1 óra  
Hát sajátaltere csak olyan mátrixnak van aminek a karakterisztikus polinomjának van gyöke, azaz det(A - lambda*I) = 0. Azaz ennek van legalább kettö lineárisan összefüggö sora, azaz van legalább egy csupa nulla sora. Azaz legalább egy sajátvektor koordinátát meg lehet választani tetszölegesen, mondjuk legyen 1. Ha most a mátrixot (A - lambdai*I) ilyen alakra hoztad:

Kód:
a b c
0 d e
0 0 0


Akkor könnyedén kijön, hogy

Kód:
z = 1
y = -e / d
x = ((eb / d) - c) / a


egy sajátvektora a mátrixnak, söt ennek minden K-szorosa is sajátvektor. Hasonlóan kell eljárni a másik két sajátértékre is. Sorokat nyilván tetszölegesen lehet cserélgetni, ha nem ien alaku a mátrix.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
zeller - Törzstag | 464 hsz       Online status #172350   2012.01.09 20:34 GMT+1 óra  
Es mi a megoldas, a trivialis megoldast leszamitva? (mmint amit mindenki tud)

   
Asylum - Törzstag | 5440 hsz       Online status #172349   2012.01.09 20:19 GMT+1 óra  
Storno, megoldottam (tök trivi egyébként).
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Asylum - Törzstag | 5440 hsz       Online status #172257   2012.01.08 18:10 GMT+1 óra  
Nem tudja valaki, hogy hogyan lehet egy 3x3-as mátrix sajátvektorait meghatározni, ha a sajátértékek már ismertek? (pontosabban a sajátaltér egy bázisa kéne) És ha a mátrix szimmetrikus? (OBB számoláshoz kell).
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Viktor84 - Tag | 112 hsz       Online status #169837   2011.12.03 14:51 GMT+1 óra  
Matzi:
Köszönöm!Pont ezt kellett tudnom!

Asylum:
Szintén köszi!Neked a kisujjadban van a matek!

   
Frissebbek | Korábbi postok
[1] [2] [3] [4] > 5 < [6] [7] [8] [9] [10] [15] [20] [21]