dev.gamez.lv Forum Index dev.gamez.lv
Latvian Game Developers Community
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups 

Ceļa noteikšana
Goto page 1, 2  Next
 
dev.gamez.lv Forum Index -> Matemātika un fizika
View previous topic :: View next topic  
Author Message
ra001
Site Admin
Site Admin


Joined: 20 Jan 2003
Posts: 452
Location: Latvija

PostPosted: Wed Dec 28, 2005 12:07 pm    Post subject: Ceļa noteikšana



Labrīt.

Vai kādam nav nojausmas kā aprēķināt īsāko ceļu kuģim K, ar ātrumu V2 nokļūt līdz planētai, kura riņķo ap "sauli" pēc šādas formulas?

Xn=Xs+cos(V1*pi * n)*radius;
Yn=Ys -sin(V1*pi * n)*radius;

Man matemātika galīgi nepadodas...
Back to top
View user's profile Send e-mail Visit poster's website
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Wed Dec 28, 2005 1:21 pm    Post subject:

Īsākais ceļš, lai nokļūtu līdz planētai, ir līdz tuvākajam punktam uz planētas orbītas. Tb tavā zīmējumā tas būs tas nelielais attālums tieši pa labi līdz tai svītr-punktētajai līnijai. Un tur jāsēž jāgaida, kamēr atnāk planēta.
Back to top
View user's profile Send e-mail
ra001
Site Admin
Site Admin


Joined: 20 Jan 2003
Posts: 452
Location: Latvija

PostPosted: Wed Dec 28, 2005 2:07 pm    Post subject:

Nē runa jau nav par to, bet par to, lai kuģis braucot pa taisni, nonākot pie planētas orbītas būtu vienlaicīgi ar planētu šai pašā punktā.
Back to top
View user's profile Send e-mail Visit poster's website
zutiic
Indago dalībnieks
Indago dalībnieks


Joined: 12 Jan 2004
Posts: 140
Location: Rīga

PostPosted: Wed Dec 28, 2005 3:36 pm    Post subject:

manupraat kugja aatrums (V2) vispaar nav vajadziigs, lai noteiktu minimaalo celju - vnk jaaskataas, kuraa laika momentaa (t) planeeta atrodas vistuvaak kugjim un tad peec pitagora jaaapreekjina attaalums (a) no kugja(kurss apreekjina laikaa staav) liidz planeetai laika momentaa, kad taa vistuvaak kugjim.


(ziimeejumaa, tur kur ir Vs, Xs un Ys, tekstaa ir attieciigi Vp, Xp un Yp. mani mulsinaaja taas dzeltenaas planeetas dzeltenaa kraasa, taapeec uzskatiiju to par sauli, kad ziimeeju)

saakumaa planeeta atrodas 0 graadu attieciibaa pret sauli(uz x ass). tad t=0. Vp ir planeetas lenkjiskais aatrums, vai kkas taads (aatrums kaa izmainaas planeetas lenkjis pret sauli(0,0) laikaa t). r ir planeetas attaalums liidz saulei. tad planeetas koordinaatas, ja dod laiku t buus..
Xp(t) = r*cos(Vp*t)
Yp(t) = r*sin(Vp*t)


plus, izmantojot ieguutaas koordinaatas, apreekjinam attaalumu(a) no planeetas liidz kugjim..
a = sqrt( (Xk-Xp(t))^2 + (Yk-Yp(t))^2 )

viss, kas tev jaaizdara, ir, jaatrod taads t, pie kura vismazaakais a (to var izdariit vienkaarshaa ciklinjaa). peec tam vnk virzi kugji uz koordinaataam Xp(t), Yp(t) ar aatrumu a/t, liidz vinss tur sastapsies ar planeetu:D

(ceru, ka straadaas, jo pats tikai uz papiira ziimeeju)
Back to top
View user's profile Send e-mail
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Wed Dec 28, 2005 5:34 pm    Post subject:

zutiic:
Quote:
vnk jaaskataas, kuraa laika momentaa (t) planeeta atrodas vistuvaak kugjim un tad peec pitagora

A kā lai zin, kurā laika momentā tad būs?
ra001 droši vien grib tieši to jau uzzināt (X2,Y2 koordinātes viņa bildē), lai zinātu uz kurieni braukt ar to kuģi.
Quote:
viss, kas tev jaaizdara, ir, jaatrod taads t, pie kura vismazaakais a (to var izdariit vienkaarshaa ciklinjaa)

Tā nu gan būtu muļķība. Padomā pats, ja nu tā planēta veic lielu riņķi - tad taču cikls būs ilgs un bremzēs tā visa padarīšana. Te noteikti var analītiski izrēķināt, kurā laika posmā tas būs. Vajag tikai vienādojumu pareizu sastādīt ;)

Man pašlaik labākais kas sanācis ir vienādojums formā: a*sin(xt+y)+b*cos(xt+y)+c=d*t^2 (kur visi tie burti izņemot t ir konstantes)
Kautkā pašam nesanāk atrast t atrisinājumu. Būšu mājās, tad Maple'i parasīšu ;)
Back to top
View user's profile Send e-mail
zutiic
Indago dalībnieks
Indago dalībnieks


Joined: 12 Jan 2004
Posts: 140
Location: Rīga

PostPosted: Wed Dec 28, 2005 7:10 pm    Post subject:

oke, nenejm pieree - meeginaaju liidzeet...Neutral
ja taa labi padomaa, bubu otrajaa postaa bija daleeja taisniiba.
Quote:
Īsākais ceļš, lai nokļūtu līdz planētai, ir līdz tuvākajam punktam uz planētas orbītas. Tb tavā zīmējumā tas būs tas nelielais attālums tieši pa labi līdz tai svītr-punktētajai līnijai. Un tur jāsēž jāgaida, kamēr atnāk planēta.

nevajag tikai to "seedeeshanu un gaidiishanu".

Xp = cos( atan2(Yk, Xk) ) * r;
Yp = sin( atan2(Yk, Xk) ) * r;
...kur Xp un Yp - koordinaatas kur kugjim jaanonaak, r - planeetas attaalums liidz saulei, Xk un Yk - kugja saakuma koordinaatas.

laiku, cik ilgi kugis pavadiis celjaa reekinaam shitaa (atnjemam loku garumus un izdalaam ar aatrumu):

t = (2*r/pi) * ( atan2(Yk, Xk) - atan2(Yp0, Xp0) ) / Vp;
// vajag veel panjemt |t|
t = (t>0)? t : -t;
...kur t - laiks, r - planeetas attaalums liidz saulei, Xk un Yk - kugja saakuma koordinaatas, Xp0 un Yp0 - planeetas saakuma kordinaatas, Vp - planeetas aatrums (shitas vairs nav lenkiskais!)
Back to top
View user's profile Send e-mail
zutiic
Indago dalībnieks
Indago dalībnieks


Joined: 12 Jan 2004
Posts: 140
Location: Rīga

PostPosted: Wed Dec 28, 2005 7:21 pm    Post subject:

ak jaa, un mazaakais attaalums buus raadiusu starpiiba:

a = r - sqrt( Xk*Xk + Yk*Yk );



par atskaites sisteemas saakumpunktu te visur pienjemams sauli (0,0), ja kas
Back to top
View user's profile Send e-mail
ra001
Site Admin
Site Admin


Joined: 20 Jan 2003
Posts: 452
Location: Latvija

PostPosted: Wed Dec 28, 2005 7:45 pm    Post subject:

Paga, man nekas nesanāk.

Man kuģim ir konstants ātrums Vk un sākuma koordinātes Xv un Yv
Planēta riņķo ap sauli ar konstantu ātrumu Vp, pa parastu riņķa līniju ar radiusi R.

Man vajag atrast kurā punktā Xx,Yy satiksies planēta un kuģis.

Pašlaik man sanāk tikai tā, ka kuģis "skrien" pakaļ planētai, bet ja sagadās, ka planētas ātrums ir lielāks nekā kuģa ātrums, tad kuģis nekad nenonāk uz šīs nolāpītās planētas...

http://rah.eos.lv/solar1.exe
Back to top
View user's profile Send e-mail Visit poster's website
zutiic
Indago dalībnieks
Indago dalībnieks


Joined: 12 Jan 2004
Posts: 140
Location: Rīga

PostPosted: Wed Dec 28, 2005 8:03 pm    Post subject:

es nezinu vai gamemakerii ir taa forshaa atan2 f-cija. tad vareetu taa, kaa rakstiiju:
Quote:
Xp = cos( atan2(Yk, Xk) ) * r;
Yp = sin( atan2(Yk, Xk) ) * r;
...kur Xp un Yp - koordinaatas kur kugjim jaanonaak, r - planeetas attaalums liidz saulei, Xk un Yk - kugja saakuma koordinaatas.

..un viss notiktos - kugjis pa taisnu trajektoriju (kas, ja tiek pagarinaata, iet cauri saulei) nonaaktu uz planeetas :/
oke, te lai veel bubu domaa..
Back to top
View user's profile Send e-mail
Vecais_Dumais_Laacis
Guru
Guru


Joined: 29 Jan 2004
Posts: 800

PostPosted: Wed Dec 28, 2005 8:48 pm    Post subject:

man sanaak kaukaa taa
pienjemot ka planeeta atrodaas koordinaatees (r,0)

Code:

cos(t*Vp)=(Xk+Vkx*t)/r
sin(t*Vp)=(Yk+Vky*t)/r
Vk=sqrt(Vkx^2+Vky^2)

Vp - planeetas rotaacijas aatrums
Xk, Yk - kugja saakotneejaas koordinaates
Vk - kugja aatrums
Vkx - kugja aatruma x komponente
Vky - kugja aatruma y komponente
t - laiks
r - rotaacijas raadiuss



triis mainiigie - t, Vkx, Vky
triis vienaadojumi - itkaa vajadzeetu buut atrisinaamam
atrisinot vienaadojumu tiks ieguuts laiks un kugja virziens
peec tam elementaari ir atrast x,y koordinaates sadursmei

ne velti NASA smalki meedz izreekjinaat visu pirms suutiit kauko projaam

veel jau var paredzeet (iipashi extreemiem matemaatikjiem) to lai kugjis neietriektos planeetaa bet smuki pietuvotos no aizmugures Wink
_________________
...un ja bites buutu laachi...
Back to top
View user's profile
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Wed Dec 28, 2005 8:54 pm    Post subject:

Tu vēl aizmirsi Xs un Ys atņemt no labām pusēm - planētas rotācijas centrs (saule).

Man šis pats sanāk, tikai nemāku atrisināt.. Maple ar nelīdz.

Pie tam, Nasa diez vai k.kuģus sūta pa taisno uz vajadzīgo vietu. Šie jau izmanto planētu gravitācijas, lai iegūtu ātrumus un tad tas ceļš izskatās kā spirālveidīgs. :)
Back to top
View user's profile Send e-mail
S1
Indago dalībnieks
Indago dalībnieks


Joined: 31 Jul 2005
Posts: 219
Location: Jelgava

PostPosted: Wed Dec 28, 2005 9:39 pm    Post subject:

Quote:
Man vajag atrast kurā punktā Xx,Yy satiksies planēta un kuģis.

mans risinājums ir nedaudz savāds Rolling Eyes. Var sastādīt nelielu programiņu ar ciklu, kur katrā ciklā maini planētas ātrumu, līdz attiecīgi abu objektu koord. kautcik sakritīs satikšanās vietā. Vai saprati manu ideju? Smile
Back to top
View user's profile Send e-mail
ra001
Site Admin
Site Admin


Joined: 20 Jan 2003
Posts: 452
Location: Latvija

PostPosted: Wed Dec 28, 2005 10:05 pm    Post subject:

zutiic wrote:
es nezinu vai gamemakerii ir taa forshaa atan2 f-cija. tad vareetu taa, kaa rakstiiju:
Quote:
Xp = cos( atan2(Yk, Xk) ) * r;
Yp = sin( atan2(Yk, Xk) ) * r;
...kur Xp un Yp - koordinaatas kur kugjim jaanonaak, r - planeetas attaalums liidz saulei, Xk un Yk - kugja saakuma koordinaatas.

..un viss notiktos - kugjis pa taisnu trajektoriju (kas, ja tiek pagarinaata, iet cauri saulei) nonaaktu uz planeetas :/
oke, te lai veel bubu domaa..


ir tāda pati atan funkcija, kad to izmantoju, kuģis aiznesās pa taisno vienā virzienā netakarīgi no tā atrašanās vietas.
Patiesībā valodai nav noziimes, gamemakeri izmantoji tikai lai ātrāk pārbaudītu rezultātu...
Back to top
View user's profile Send e-mail Visit poster's website
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Wed Dec 28, 2005 10:19 pm    Post subject:

atan2(Yk, Xk) atgriež leņķi no 0-punkta līdz (Xk,Yk)-punktam.
Back to top
View user's profile Send e-mail
Lāčblēdis



Joined: 16 Jan 2005
Posts: 113

PostPosted: Wed Dec 28, 2005 10:20 pm    Post subject:

Man sanāca tā, ka, neņemot vērā kļūdu, jāatrod t pēc vienādojuma:
R^2+Kx^2-Ky^2-2RKxcos[VpPI(t+N)]+2RKysin[VpPI(t+N)]=(Vk*t)^2
Nav svarīgi, kurš loceklis ko apzīmē, jo tāpat to nevar izrēķināt.

Es domāju, ka pareizi lika priekšā Zutītis - pārbaudīt dažādus laika momentus t un iegūt t ar mazāko kļūdu. Nav jau jāaprēķina katrs t no nulles līdz bezgalībai, manuprāt, var izmantot intervāla dalīšanas metodi.
Back to top
View user's profile
Display posts from previous:   
dev.gamez.lv Forum Index -> Matemātika un fizika All times are GMT + 2 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group