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
Frissebbek | Korábbi postok
[1] [2] [3] [4] [5] > 6 < [7] [8] [9] [10] [15] [20] [21]
Asylum - Törzstag | 5444 hsz       Online status #169832   2011.12.03 12:30 GMT+1 óra  
Na van egy kis idöm ugyh leirom akkor részletesebben:

Egy egyenest parametrikus alakben igy lehet felirni:

Kód:
o + t * d


(ahol nyilván o a kiindulopontja, d pedig az iránya)

Egy háromszöget baricentrikus koordinátákkal pedig igy lehet felirni:

Kód:
w * v1 + u * v2 + v * v3


Ahol viszont w + u + v == 1 kell legyen, tehát w = (1 - u - v).
Keresendö a metszéspont, azaz:

Kód:
o + t * d = (1 - u - v) * v1 + u * v2 + v * v3


Ami viszont átrendezhetö az alábbi alakba:

Kód:
o + t * d = v1 - u * v1 - v * v1 + u * v2 + v * v3
o + t * d = -u * (v1 - v2) - v * (v1 - v3) + v1
t * d + u * (v1 - v2) + v * (v1 - v3) = v1 - o


Ami pedig mátrix alakban:

Kód:
                              t
                              u
                              v
                            +-----
[d, (v1 - v2), (v1 - v3)]   | v1 - o


Azaz A*x = b, tehát x = A(-1) * b
Nyilván fontos megnézni, hogy a mátrix determinánsa nem nulla-e, ekkor ugyanis az egyenes párhuzamos a háromszög sikjával és nincs metszés.
Ha az eredményül kapott u és v a [0, 1] tartományban van, akkor az egyenes metszi a háromszöget és a metszéspont kiszámolhato a fenti képlettel (akár az egyenesböl, akár a háromszögböl).

(többiek ellenörizzék, hogy jol irtam-e )
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
fpeti - Törzstag | 1290 hsz       Online status #169807   2011.12.02 19:53 GMT+1 óra  
Esetleg, itt egy működő kód 3szög (tr[0-1-2]) - síkján lévő pont (hit) viszonya között:

Kód:
// triangle - planehitpoint intersection test
int CPoliLineHit::Intersect(VECTOR *tr,VECTOR *hit)
{
double uu,uv,vv,uve,vve,dist,s,t;
VECTOR u,v,ve;
u=tr[1]-tr[0];
v=tr[2]-tr[0];

// SoftSurfer (credit)

uu=u.DotProductDouble(u);
uv=u.DotProductDouble(v);
vv=v.DotProductDouble(v);
ve=(*hit)-tr[0];
uve=ve.DotProductDouble(u);
vve=ve.DotProductDouble(v);

dist= uv * uv - uu * vv;

s=(uv*vve - vv*uve) / dist;
t=(uv*uve - uu*vve) / dist;

if( (s<0.0) || (s>1.0)) return 0; // nincs benne a 3szögben
if( (t<0.0) || ((t+s)>1.0)) return 0;
return 1; // minden oké benne van.
}
   
Matzi - Szerkesztő | 2519 hsz       Online status #169805   2011.12.02 18:33 GMT+1 óra  
Ez volt a kiindulás:

orig= 0,10,-10,
dir= 0,10,10,
v0= 30,0,0
v1= -30,0,0
v3= 0,30,10

orig + (2 * dir) = 0, 30, 10 ===> v3

A dir egy vektor, nem pedig egy másik pont, vagyis az egyenes az origból indul ki, és párhuzamos a dir-el. Remélem így érthető, de ha kell, kifejtem.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
Viktor84 - Tag | 117 hsz       Online status #169804   2011.12.02 17:45 GMT+1 óra  
Bukta:
Az objektumot a saját pozíciójában kell elforgatnod,ha mondjuk annak közepe a sprite kép közepe tehát 32/2 akkor a bound 4 sarkát kell elforgatnod.Ezek 16 és -16-ok lesznek.Utána hozzá kell adnod a pozíciót.Ezt is így kell számolnod,megadod hogy mennyit haladjon előre,ezt elforgatod,így az lesz a pozíció.Ehhez kell hozzáadni a bound elforgatott értékeit.
A
vXCoord = vYCoord = 32 - 100;
részt inkább hagyd ki,az az én komplikált kódomból maradt vissza.
Egyszerűen úgy csináld hogy ismered a boundok koordinátáit,azok mindíg 0,0 pozícióban maradnak és nem forognak.Kell egy másik érték nekik ami mozog.A statikus értékek alapján forgatod az objektumot aminek értékeit a mozgó veszi fel.Ezekhez hozzáadjuk a pozíciót és meg is vagyunk.

   
Viktor84 - Tag | 117 hsz       Online status #169802   2011.12.02 17:29 GMT+1 óra  
Várjunk akkor leírom mit gondolok.("gondolok" mert mondom hogy nem vagyok mindíg a helyzet magaslatán)Az orig az egyenes kiinduló pontja,a dir-re pedig úgy gondoltam hogy húzok egy adott hosszúságú vonalat és az a másik vége.Ezért a metszéspont koordinátáit fejben így saccolom:0,10,3.1(ez csak durván).
Az előző példára ezt adja ki:
u: 0,v: 1,t: 2;
u,v= baricentrikus koordináták amiket eddig azt hittem tudok értelmezni de úgy néz ki mégsem.Azt hittem hogy 0 és 1 közt változnak és 0 az egyik vég,1 a másik(a textúrázás UV-jára asszociálva).
t= metszés távolsága,a 2 nem tudom hogy jött ki.
Mellékelem a direcx metszését hogy szemléltessem amivel dolgozom:

BOOL D3DXIntersectTri
(
CONST D3DXVECTOR3 *p0, // Triangle vertex 0 position
CONST D3DXVECTOR3 *p1, // Triangle vertex 1 position
CONST D3DXVECTOR3 *p2, // Triangle vertex 2 position
CONST D3DXVECTOR3 *pRayPos, // Ray origin
CONST D3DXVECTOR3 *pRayDir, // Ray direction
FLOAT *pU, // Barycentric Hit Coordinates
FLOAT *pV, // Barycentric Hit Coordinates
FLOAT *pDist);

Szerintem valamit nagyon félreértek ha tudod légyszíves magyarázd el!

   
Bukta - Tag | 308 hsz       Online status #169801   2011.12.02 17:16 GMT+1 óra  
Viktor:
Én ezt a képletet már láttam, de ezzel nekem még nem jött ki semmi jó. Vegyük át:
x = y = 100; // pozíció
Width = Height = 32; // kép szélessége, magassága
Tehát:
vXCoord = vYCoord = 32 - 100;
xtemp = cos(30) * -68 - sin(30) * -68; // = -24.88f + 100 = 75

A 75 nem kóser mert 30 foknál 100%, hogy 83 az x. Így y-t már nem is helyettesítek be. Amúgy lehet én szúrtam el (rosszul értelmeztem amit írtál, vagy bármi), mert sok helyen ez a képlet szerepelt, de nem vezettek jó útra. Jah nem váltottam át radiánba, de a számológéppel fokban számolva nem jó az eredmény.
Am ha jol látom a radiánba (fok * (PI / 180)) is jó
ArgumenException: A megadott DependencyObject nem ehhez a Freezable elemhez tartozó környezet. Paraméter neve: context
:oO Mi a???
   
Matzi - Szerkesztő | 2519 hsz       Online status #169800   2011.12.02 16:52 GMT+1 óra  
Viktor:
A dir egy irány, egy relatív vektor, nem pedig egy másik pont. A mostani egyszerűbb példád például az egyik sarkában (v3) metszi a háromszöget, ha ezt te is így látod, akkor nincs gond, de ha nem, akkor összekevertél valamit.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
Viktor84 - Tag | 117 hsz       Online status #169798   2011.12.02 16:31 GMT+1 óra  
Asylum:
Azt megcsináltam én is és a két másik is tudta.Azért kösz,ez is hasznos infó.

Matzi:
A 3d Studio maxban nézegetem a koordinátákat,sajna metszenie kellene de nem teszi.Az olyan egyszerűekkel megbírkózik mint pl orig:x=0,y=10,z=-10,dir:x=0,y=10,z=10,v0x=30,00,v1=-30,0,0,v3=0,30,10.

Bukta:
Nem tudom erre van-e szükséged de asszem jót másolok be:

float fok;//az elforgatandó szög
float haromhatvan = 360;
float szog1pper;//a fok-radián átváltáshoz kell
float iranytemp;//síma ideiglenes érték

float xtemp,ytemp;
float vXcord,vYcord;

szog1pper = fok * (PI*2 / haromhatvan);//átváltjuk radiánba



vXcord = Boundx1-xp;//a bound x hossza mínusz pozíció
vYcord = Boundy1-yp;//a bound y hossz mínusz pozíció

//Elforgatjuk a kívánt tengelyen(itt a z-n,így az x-y mozdul)
iranytemp = cosf(szog1pper)*vXcord-sinf(szog1pper)*vYcord;
xtemp = iranytemp;

iranytemp = sinf(szog1pper)*vXcord+cosf(szog1pper)*vYcord;
ytemp = iranytemp;

Az xtemp és ytemp az eredmény.Ehhez kozzáadod az x és y pozíciót és a bound a megfelelő helyre kerül.Ha nem így számolsz akkor a vX(Y)cord-nál hagyd ki a -xp és yp-t.
A nem középen lévő forgatást úgy oldhatod meg hogy amikor beolvasod a képfájlt(gondolom ha 2d-ben dolgozol) megadod rajta a pozíciót ami körül forgatni szeretnéd az objektumot,az lesz a 0 pont,kiszámolod hogy attól előre mögötte,illetve oldalra hány pixel van.Azok lesznek a bound x és y koordinátái,így azt a négy pontot kell forgatni a fenti módszerrel.Rossz mesélő vagyok de remélem érted.

   
Asylum - Törzstag | 5444 hsz       Online status #169796   2011.12.02 15:59 GMT+1 óra  
Talan ez segit (reszlet):



A baricentrikus koordinata itt azt jelenti, hogy ha [0, 1]-ben van, akkor a metszet benne van a haromszogben. A "kihasznalva hogy" resz neked nem kell.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Bukta - Tag | 308 hsz       Online status #169795   2011.12.02 15:59 GMT+1 óra  
Bele se merek gondolni Viktor. Én is most szenvedtem össze egy 2D rectangle bound-ot a játékbeli képeknek (képek köré egy rectangle), de nekem se 100 mert, ha a forgási középpont nem 0;0 akkor gáz van, amúgy jó, de mindenképp kéne ez a "kis" plussz is.
Valaki okos embert én is keresek.
ArgumenException: A megadott DependencyObject nem ehhez a Freezable elemhez tartozó környezet. Paraméter neve: context
:oO Mi a???
   
Matzi - Szerkesztő | 2519 hsz       Online status #169794   2011.12.02 15:53 GMT+1 óra  
Nem ellenőriztem le, de szerény fejszámolásom szerint ez úgy elmegy mellette, mint a csuda. Esetleg próbálj triviális helyzeteket felvázolni, és akkor tudod ellenőrizni is, vagy vizualizáld valamiképpen.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
Viktor84 - Tag | 117 hsz       Online status #169792   2011.12.02 15:42 GMT+1 óra  
Nekem az egyenes és háromszög metszésével van gondom.Nagy kínok közt össze tákoltam egyet ami néha működött is.Nem voltam vele elégedett ezért kerestem egy megoldást a neten.Az is csak bizonyos esetekben adott megfelelő választ.Végül rátaláltam a DirectX féle változatra és láss csodát:Ugyanaz mint az előzőeknél.Nem vagyok jó matekos(még szerencse hogy a programozásban ritkán van rá szükség ) úgyhogy azt szeretném megkérdezni hogy itt be kell tartani valami szabályt,mondjuk hogy az egyenes valamelyik pontjának 0-nak kell lenni vagy a háromszög nem lehet nagyobb egy bizonyos méretnél vagy hasonló.Bután hangozhat a kérdés de már nem tudok mit csinálni.Például az alábbi koordinátákra mind azt mondja hogy nem metszi:

vert0.x = -30;
vert0.y = 30;
vert0.z = 20;
vert1.x = 80;
vert1.y = 80;
vert1.z = 0;
vert2.x = 100;
vert2.y = 0;
vert2.z = -10;

orig.x = 50;
orig.y = 30;
orig.z = 100;
dir.x = 50;
dir.y = 30;
dir.z = -100;

   
glezmen - Törzstag | 381 hsz       Online status #169733   2011.12.01 12:34 GMT+1 óra  
kicsit segitsetek pliz, olyan szinten vagyok most agyilag zokni hogy meg ezt is keptelen vagyok vegiggondolni...

szoval a feladat amolyan 'kamatos kamat' jellegu

adott egy eves kamat, mondjuk 2.5%, es az induloosszeg, mondjuk 10000

a kiindulasi allapottol kezdve random idokozonkent 'ranezek', es szeretnem tudni az aktualis allapotot. nyilvan akarhanyszor is szamolok, a 365. napon 2.5% ossznovekedesnek kell kijonnie, vagyis addigra 10250 lesz a vegosszeg, de fingom sincs mit csinaljak hogy mondjuk a 32. vagy 47. napon aktualis allapotot kiszamitsam

MOD: hm, ugy tunik megtalaltam:

(PS: recipocok bazzeg, sirok )

Ezt a hozzászólást glezmen módosította (2011.12.01 13:01 GMT+1 óra, ---)
   
Parallax - Tag | 579 hsz       Online status #168784   2011.11.16 13:26 GMT+1 óra  
A recipocok után Obádovics J Gyula Matematika könyve kész rémálom lehet szegényeknek, a Thomas féle kalkulus később meg már horror.

   
Asylum - Törzstag | 5444 hsz       Online status #168783   2011.11.16 13:17 GMT+1 óra  
Es amugy hogy erzitek magatokat?
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
gaborlabor - Moderátor | 4449 hsz       Online status #168782   2011.11.16 12:57 GMT+1 óra  
Nekünk is az volt, de soha nem tanultam belőle semmit, csak végigpörgettem, mert a képek/képaláírások jók voltak benne

   
zeller - Törzstag | 464 hsz       Online status #168760   2011.11.16 07:48 GMT+1 óra  
A sokszinu matematika jo konyv volt. En szerettem.

   
LugaidVandroiy - Törzstag | 504 hsz       Online status #168758   2011.11.16 05:23 GMT+1 óra  
Idézet
Asylum :
Én ott mondtam le a világról amikor egy középiskolás matekkönyvben a reciprok mellé egy rókát rajzoltak (recipróka), hogy az a szerencsétlen debil valahogy megjegyezze



Róka? Nekünk annó recipocok volt. Változnak az idők ;D

   
DMG - Szerkesztő | 3172 hsz       Online status #168757   2011.11.15 23:42 GMT+1 óra  
Én a középiskolában úgy tanítottam a prog elméletet, hgog ya tömb, az olyan mint egy jegyzettömb, az indexelés meg az oldal számozás. Namármost a jegyzettömb egyes oldalain bármit tudunk tárolni, akár szöveget, számot stb...

Aztán tanítottam a sort, meg a vermet, vicces csávó beszolt a sornál, hogy SÖR. felvilágosítottam, hogy a SÖR az legfeljebb verem lehetz, mert ott megy be ahol ki is jön, ha úgy tetszik mindig a legfelső elem. A sor meg max egy lyukas sörös korsó.
-----------------------------------------
Dont Listen to the Naysayers
   
Asylum - Törzstag | 5444 hsz       Online status #168756   2011.11.15 23:37 GMT+1 óra  
Én ott mondtam le a világról amikor egy középiskolás matekkönyvben a reciprok mellé egy rókát rajzoltak (recipróka), hogy az a szerencsétlen debil valahogy megjegyezze
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
DMG - Szerkesztő | 3172 hsz       Online status #168753   2011.11.15 22:35 GMT+1 óra  
Megesik, hogy az embernek nem fog úgy az agya. Meg úgy általában az is, hog ynem áll rá az agya a matekra.
Amúgy

(5 + 5 + 5 - 5 + 5 + 5 - 5 + 5) x 0 = ?

Ha így szemléltetem, akkor talán könyebben leesik, hog ykinek van igaza, szóval így lesz az eredmény nulla.
-----------------------------------------
Dont Listen to the Naysayers
   
krees - Törzstag | 732 hsz       Online status #168737   2011.11.15 20:19 GMT+1 óra  
Matekból izom hülye vagyok,de ez még nekem is sikerült. Asszonykám emelt matekot nyom, de egy hasonlóba belebukott (istenemcsakneolvassamerteltörianyakam)

Egyébként Asynak igaza van, szánalmas, hogy egy ilyen kis apróságba hányan belebuknak.. Minél hülyébb vagy, annál többre viszed, bevisznek a médiába azt' pá.
   
LugaidVandroiy - Törzstag | 504 hsz       Online status #168731   2011.11.15 19:56 GMT+1 óra  
Létezik. Csak a béka segge alatt van, mínuszban.

   
Asylum - Törzstag | 5444 hsz       Online status #168729   2011.11.15 19:46 GMT+1 óra  
Itt tart ma az oktatás. Meg úgy általában a szellemi színvonal.

Várjunk csak, mi? Elnézést olyan magyarországon nem is létezik. Nálunk Győzike van meg Alekosz. -.-
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Marclee - Tag | 285 hsz       Online status #168728   2011.11.15 19:29 GMT+1 óra  
Semmi probléma nincs csak 4bitet sehogy se tudtam meggyőzni ,hogy ez 15 és nem 0
Humankind cannot gain anything without first giving something in return. To obtain, something of equal value must be lost.
Alphonse Elric

http://geeksworld.hu/
   
HomeGnome - Szerkesztő | 2919 hsz       Online status #168726   2011.11.15 19:16 GMT+1 óra  
5 + 5 + 5 - 5 + 5 + 5 - 5 + 5 x 0 = 15
és mi a probléma? Akinek ez nem 15 az sürgősen korrepetáltassa magát..

Klikk, a JF.hu bulvárlap.
Klikk #6 WIP: 30% (Kuz, sade, ramoryan...)
   
Marclee - Tag | 285 hsz       Online status #168718   2011.11.15 18:55 GMT+1 óra  
4bit barátunk a következő feladatra
5 + 5 + 5 - 5 + 5 + 5 - 5 + 5 x 0 = ?
0 val válaszolt, megkérdeztem ,hogy miért és 100% ig biztos ,hogy annyi xd

de a szorzás előbbre való az összeadásnál és a kivonásnál tehát az ott 0 a végén, tehát
5 + 5 + 5 - 5 + 5 + 5 - 5 + 0 = ? = 15 a végeredmény, tömjétek már bele a fejébe ha nekem nem hisz

edit: nem cikizni akarom de könyörgöm 15 éves, és azt állítja ,hogy a szorzás csak akkor van előbb ha zárójelben van, oké most adtam fel...
Humankind cannot gain anything without first giving something in return. To obtain, something of equal value must be lost.
Alphonse Elric

http://geeksworld.hu/
   
ANg - Tag | 9 hsz       Online status #167573   2011.10.29 17:34 GMT+1 óra  
Sziasztok!

Lenne egy köbös spline problémám az itteni második módszert próbáltam implementálni, de nem jött össze rendesen: http://www.vbforums.com/showthread.php?t=480806

Ide tettem fel a kódot: http://prog.hu/tudastar/142102/Cubic+Spline.html

A nyelv C# igaz, de gondoltam ide rakom, mert azért valamennyi matek is kell hozzá, és hátha valaki ismeri.köszi

   
terbed - Tag | 233 hsz       Online status #166140   2011.10.04 16:15 GMT+1 óra  
Azta : O Meg kéne tanulnom számolni.
köszi Matzi
   
Matzi - Szerkesztő | 2519 hsz       Online status #166138   2011.10.04 16:08 GMT+1 óra  
Ugye tudod, hogy 2^8 = 256?
Szóval rögtön a második sorban a jobb oldalon rossz hatványt hoztál ki, 6 helyett 8-at. Úgy rögtön ki is jön a 4.
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 #166136   2011.10.04 16:02 GMT+1 óra  
Helló újfent ismét!
Ez lenne a problémám. Exponenciális egyenlet. Az eredménynek elvileg 4-nek kell lennie (könyv szerint), egy tanár pedig egy háromas végeredménnyel oldotta meg, szóval most nem értem.
   
zeller - Törzstag | 464 hsz       Online status #165860   2011.10.02 09:24 GMT+1 óra  
Vazz rossz topic...

   
Pretender - Törzstag | 2498 hsz       Online status #165655   2011.09.29 09:18 GMT+1 óra  
ja, rájöttem, hülye vagyok

Ezt a hozzászólást Pretender módosította (2011.09.29 09:30 GMT+1 óra, ---)

   
Pretender - Törzstag | 2498 hsz       Online status #164854   2011.09.22 10:19 GMT+1 óra  
Ja értem... akkor az elsőnél csak annyi a megoldás, hogy
Kód:
y = -1/(6+p)

?

   
Matzi - Szerkesztő | 2519 hsz       Online status #164848   2011.09.22 10:00 GMT+1 óra  
Ha a p a paraméter, akkor a p függvényében kell felírni a megoldást. Szóval pont fordítva.

Kód:
y E R, ha p = -6
y = 0, ha p <> -6
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 #164841   2011.09.22 09:34 GMT+1 óra  
Tudom, hogy könnyű, meg minden, de elfelejtettem
Kód:
2x + py = 3
x - 3y = 2

x,y, € R, p = paraméter

Hogy is kell az ilyet megoldani? Odáig megvan, hogy (6+p)y = -1

szerk.:
vagy ez csak annyi, hogy végtelen sok megoldás? vagy csak ennyi?

mert a következőnél ez van:
Kód:
2x + py = 4
x - 3y = 2

amiből ugye az jön ki, hogy
Kód:
(6+p)y = 0

Amiből meg az, hogy
Kód:
- ha y = 0 -> p € R
- ha y != 0 -> p = -6

   
zeller - Törzstag | 464 hsz       Online status #164793   2011.09.21 19:12 GMT+1 óra  
Igen, rajottem en is, hogy postorder kell csinalni.
Igaz, hogy O(c*n) = O(n), de nem mindegy, hogy a c az 5 vagy 500. Ezert en ugy lattam, hogy pontosabb becsleseknel c minimalis erteket is meg szoktak adni.

   
Matzi - Szerkesztő | 2519 hsz       Online status #164767   2011.09.21 16:36 GMT+1 óra  
zeller:
Lehet, hogy én értem félre, de ha alulról kezded feltölteni a fát a szummákkal, vagyis a legmélyebb csomópontoktól, akkor simán megoldható. Mindig csak a közvetlenül alatta levő (már kiszámolt csomópontokat, illetve leveleket) kell szummázni, és kész is.

Mellesleg az O(c*n) == O(n), legalábbis ha a c egy konstans és nem függ az n-től.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
zeller - Törzstag | 464 hsz       Online status #164746   2011.09.21 12:37 GMT+1 óra  
Adott egy faszerkezet.
A levelei ertekek.
A feljebb levo csomopontok rekurzive a kozvetlenul alattuk levo csomopontok ertekeinek osszegei.
Irj olyan algoritmust, ami O(n + c*log(n)) beirja a szummakat a megfelelo csomopontokba, azaz a fat gyujtesre csak egyszer jarja be, de akarhanyszor kereshet.
A fa naivan van implementalva. Jelenleg csak O(c1*n + c2*log(n)) algoritmust tudok, ami kozel 5szor lassabb lesz...

   
TomX - Törzstag | 223 hsz       Online status #163612   2011.09.12 17:09 GMT+1 óra  
Hmm.. érdekes, érdekes..

Látom ti teljesen másképp közelítettétek meg.


2 ^ (n - 1) * 1.25 ^ floor( (n + 1) / 3 ) * 10

Ennek az a lényege, hogy 2 hatványa de a másodiktól kezdve minden harmadik elemnél megszorozza 1.25-el is ( 2x1.25 = 2.5 ) vagyis megszorozza 1.25 megfelelő hatványával.
   
Matzi - Szerkesztő | 2519 hsz       Online status #163608   2011.09.12 16:15 GMT+1 óra  
M4:
Ez nem egészen képlet, és nem is túl optimális. Sokkal gyorsabb ha nem kell bejárni, csak a három alap elem ismeretében felszorozzuk:

a(0)=10, a(1)=25, a(2)=50, a(n)=10^floor(a / 3)*a(n mod 3) ha n>2

Így csak egy lookup van az egészben. De persze még így sem képlet.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
M4 - Tag | 187 hsz       Online status #163606   2011.09.12 16:05 GMT+1 óra  
Vagy: a(1)=10, a(2)=25, a(3)=50, a(n)=10*a(n-3) ha n>3.

   
Matzi - Szerkesztő | 2519 hsz       Online status #163605   2011.09.12 15:47 GMT+1 óra  

10^(ceil(n/3)+1)
-----------------------------------
2^((3-(n mod 3)) mod 3)

Kicsit sok a modulo, de azt csinálja amit kell. Feltéve persze, hogy a nulladik elem a 10-es, különben offsetelni kell.

10^(ceil(n/3)) * 2,5 * 2^((n+2) mod 3)

Ez a másik iránból közelíti meg, kicsit egyszerűbb.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
TomX - Törzstag | 223 hsz       Online status #163591   2011.09.12 14:11 GMT+1 óra  
Feladat:

Állíts elő olyan képletet ami megmondja a következő sorozat n-edik elemét:

10, 25, 50, 100, 250, 500, 1000, 2500, 5000, ...

Kíváncsi vagyok más rájön e.
   
Matzi - Szerkesztő | 2519 hsz       Online status #163402   2011.09.11 00:40 GMT+1 óra  
zeller:
Nagy mértékben függ a pályától és az üldöző vezérelhetőségétől (pl szögsebesség, gyorsulást, stb...) is. Ha egy egyszerű gyorsuló mozgást végez (pl egy leeső labda), és az üldöződ is ilyen, vagyis bármilyen irányba tud gyorsulni, és nincs kezdősebessége, akkor nem olyan vészes a probléma, csak egy kétismeretlenes egyenlet lesz.

Mondjuk bonyolultabb esetekben csak a numerikus közelítés módszere marad, sokszor gazdaságosabb is, mint precízen kiszámolni.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
ddbwo - Tag | 1625 hsz       Online status #163395   2011.09.10 23:14 GMT+1 óra  
???

Jelenlegi sebesség alapján becsült találkozás mérhető, pontos adathoz meg végig kell "pörgetni" while ciklussal a dolgot.

Ez az állandó sebességhez szimplán matekkal. A vektorok kiszámolt hosszát lehet szorozni a várható n szorzatnyi gyorsulással. Konkrét megoldáshoz nincs kedvem.

Kód:
               jelenlegi A->B táv
lépés = --------------------------------
             (vec_A *n + vec_B *n)

A-tól mért találkozás távolsága = vec_A * lépés
B-től mért találkozás távolsága = vec_B * lépés


jav.: véletlen reciprokot írtam, kijavítva...

Ezt a hozzászólást ddbwo módosította (2011.09.11 11:56 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
   
zeller - Törzstag | 464 hsz       Online status #163391   2011.09.10 22:23 GMT+1 óra  
Ha azt akarom implementalni, hogy:
'kovetes'
A mozog egy ismert palyan ismert kezdeti sebesseggel, gyorsulassal, ismert kiindulasi ponttal
B egy masik pontbol el akarja erni A-t, hogy a palyan talalkozzanak valahol.
2 megoldas van (legalabbis ennyit latok most).
1, Minden gameciklusban ujraszamolom B sebessegvektorat A es B jelenlegi poziciojabol.
2, Felirok egy diffegyenletet es megoldom.
Ezt fel tudna irni nekem valaki? Erdekes, hogy az agyunk siman megoldja a diffegyenletet, kozelito ertekeket hasznalva.
Mondjuk valszeg a 2. sokkal idoigenyesebb, annak ellenere, hogy csak egyszer kell kiszamolni + nem is adaptiv.

   
Asylum - Törzstag | 5444 hsz       Online status #158117   2011.08.02 14:27 GMT+1 óra  
Megoldottam, balfasz voltam. Naná, hogy jó az elöjeles terület. Trivi. Ha kell leirom

Most akkor ugyanez de ugy, hogy közbe a modell megy elöre (animácioval)

Ezt a hozzászólást Asylum módosította (2011.08.02 14:37 GMT+1 óra, ---)
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
syam - Törzstag | 1491 hsz       Online status #158116   2011.08.02 14:26 GMT+1 óra  
Én ezt úgy kerültem meg, hogy az objektumhoz (mindig) tartozik egy saját koordinátarendszer. Innentől pedig csak meg kell nézni, hogy a player hol van ebben a rendszerben. Meg tudod állapítani, hogy mennyire és milyen irányban vannak egymáshoz képest elforgatva.

A transzformációkor elkövetett dp4-nek megmondják a saját koord.rendszer síkjaival bezárt szögek koszinuszát - meg tudod mondani, hogy előtte-mögötte, balra-jobbra ^^

Ezt a hozzászólást syam módosította (2011.08.02 14:40 GMT+1 óra, ---)
alias aalberik
   
Asylum - Törzstag | 5444 hsz       Online status #158114   2011.08.02 14:10 GMT+1 óra  
Ez egy hülye kérdés lesz, de nem akarok napokig szopni mire rájövök.
Hogyan lehet egy kvaterniot kinyerni egy vektorból?

Konkrétan van egy objektum a terem közepén, és azt akarom, hogy mindig a player felé nézzen.
A probléma az, hogy egy kvaterniohoz kellene a heading és az x tengely által bezárt szög FELE. Ezeket tökjol ki lehet számolni, de az elöjelröl ZÉRÓ információ van, ugyanis acos(dot(heading, x)) a [0, pi] intervallumban adja vissza az értékeit.

Tehát vagy kéne egy elöjeles acos, vagy valami kerülö megoldás.
Arra gondoltam, hogy a heading és az x által formált háromszög elöjeles területét be lehetne venni a buliba, csak nem világos h hogyan.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Frissebbek | Korábbi postok
[1] [2] [3] [4] [5] > 6 < [7] [8] [9] [10] [15] [20] [21]