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

Transformations
Goto page Previous  1, 2, 3  Next
 
dev.gamez.lv Forum Index -> Grafikas programmēšana un teorija
View previous topic :: View next topic  
Author Message
Inf3rnal



Joined: 15 Jun 2006
Posts: 118
Location: Neverland

PostPosted: Wed Dec 27, 2006 4:23 pm    Post subject:

Tik un tā nesaprotu kurā momentā četrstūris tiek pagrizts, man sanāk tikai, ka četrstura koordinātes mainās, bet pats vinš negriežas... :(

Atradu vienu funkciju kura griež visu kā vajag ( Visual Basic 2005, http://msdn2.microsoft.com/en-us/library/s0s56wcf.aspx ), bet man nepātīk tas "matrix" tapēc es labāk gribētu to visu izprast matemātiski.
Back to top
View user's profile Send e-mail
elvman
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 09 Apr 2003
Posts: 1278
Location: Kuldiga

PostPosted: Wed Dec 27, 2006 5:19 pm    Post subject:

Nu shajaa gadiijumaa matrica dara tieshi to pashu,ko tu gribi. Arii reekjina koordinaatas ar sin un cos. Tikai atshkjiriiba taada,ka to tavaa vietaa izdara Rotate funkcija.
_________________
long time; /* know C */
Back to top
View user's profile Visit poster's website
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Wed Dec 27, 2006 5:23 pm    Post subject:

Code:
x' = x*cos f - y*sin f
y' = y*cos f + x*sin f

matricu formā pierakstās kā
Code:

| x' | = | cos f  -sin f | * | x |
| y' |   | sin f   cos f |   | y |

Kā pats redzi - nekādu lielo atšķirību nav.
Back to top
View user's profile Send e-mail
Inf3rnal



Joined: 15 Jun 2006
Posts: 118
Location: Neverland

PostPosted: Wed Dec 27, 2006 7:34 pm    Post subject:

Es laikam esmu stulbs, bet man nepielec - iegūtie x' un y' ir kas ? Jaunās koordinātes ? o_O

Labi sākšu no sākuma.
Ir forma, uz formas tiek zīmēts taisnstūris ar platumu X un augstumu Y.
Taisnstūris atrodas 128 pixeļus no augšas un no sāna.
Es gribi, lai tas nospiežot pogu ( vai vienalga ) pagriztos par 45 ( vai vienalga ) grādiem (radiāniem) - nevis pabīdītos uz sānu pa kautkādu trajektoriju, bet tiešī pagrieztos. Būtu ideāli ja koordinātu sākumpunkts (punkts ap kuru griežas taisnstūris) nebūtu formas x=0 un y=0, jeb nebūtu stūrī.

Kāds nevarētu uzmest paris rindiņas (vienalga kadaa valodā ) augšūpminētā murga...
Question Paldies!
Back to top
View user's profile Send e-mail
elvman
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 09 Apr 2003
Posts: 1278
Location: Kuldiga

PostPosted: Wed Dec 27, 2006 7:38 pm    Post subject:

Nu tev tas jaadara taa:
Code:

tempx = x*cos f - y*sin f
tempy = y*cos f + x*sin f

x=tempx;
y=tempy;

Un visa maaksla
_________________
long time; /* know C */
Back to top
View user's profile Visit poster's website
Inf3rnal



Joined: 15 Jun 2006
Posts: 118
Location: Neverland

PostPosted: Wed Dec 27, 2006 7:40 pm    Post subject:

Ar ko tad mans kods atšķiras?:

Code:
x = x * Math.Cos(30) - y * Math.Sin(30)
y = y * Math.Cos(30) + x * Math.Sin(30)


Tā temp daļa ir obligāta?
Back to top
View user's profile Send e-mail
elvman
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 09 Apr 2003
Posts: 1278
Location: Kuldiga

PostPosted: Wed Dec 27, 2006 7:42 pm    Post subject:

Code:
x = x * Math.Cos(30) - y * Math.Sin(30) //tikko tu izmainiji x veertiibu uz jaunu

y = y * Math.Cos(30) + x * Math.Sin(30)//tagad tu apreekjiniem izmanto sho jauno x veertiibu,nevis veco

Nu veel ir neskaidri?
_________________
long time; /* know C */
Back to top
View user's profile Visit poster's website
Inf3rnal



Joined: 15 Jun 2006
Posts: 118
Location: Neverland

PostPosted: Wed Dec 27, 2006 7:52 pm    Post subject:

AH! Esmu daunis! Evil or Very Mad Kā es to nepamanīju!

p.s.

Pēc izmaiņām kodaa mana figūra turpina rotēt pa savu riņķa līnijas traektoriju, vai kkā tā...
Code:

        xO = x * Math.Cos(angle) - y * Math.Sin(angle)
        yO = x * Math.COs(angle) + y * Math.Sin(angle)

        x = xO
        y = yO
Back to top
View user's profile Send e-mail
GiGa
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 25 Sep 2003
Posts: 887

PostPosted: Wed Dec 27, 2006 8:47 pm    Post subject:

Ja gribi, lai figuura rotee ap kaadu noteiktu punktu, paarbiidi to no saakuma, lai 0,0 punkts, ap kuru roteet jau maaki, atrastos relatiivi pret figuuru tur, kur atrodas punkts, ap kuru gribi roteet. Izdari rotaaciju, un peec tam atbiidi figuuru atpakalj.

Sheit jau saakas vairaaku transformaaciju apvienoshana vienaa - labaak iemaacies nedaudz par vajadziigo transformaaciju matricu izveidoshanu, to apvienoshanu un peec tam pielietoshanu. Pirmais guugles dotais links, http://home10.inet.tele.dk/moelhave/tutors/3d/transformations/transformations.html
izskataas pietiekami labs ievads.
Back to top
View user's profile Send e-mail
Inf3rnal



Joined: 15 Jun 2006
Posts: 118
Location: Neverland

PostPosted: Thu Dec 28, 2006 7:40 am    Post subject:

Izskatās nežēlīgi sarežģīti, vajadzēs apskatīties....
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: Thu Dec 28, 2006 10:37 am    Post subject:

Tici man, rotēt figūru ap vienku punktu plaknē ir vienkāršības kalngals. Ir vēl daudz daudz sarežģītākas lietas.
Back to top
View user's profile Send e-mail
Inf3rnal



Joined: 15 Jun 2006
Posts: 118
Location: Neverland

PostPosted: Thu Dec 28, 2006 11:00 am    Post subject:

Man tikko ienāca prātā tāda doma - manai figūrai ir tikai 2 parametri x un y, bet lai viņu pagrieztu ir jāzina 4 koordinātes - x,x1,y,y1. Tā ?
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: Thu Dec 28, 2006 12:15 pm    Post subject:

Kas ir tava figūra?
Kas ir tie divi parametri?
Un kas ir tās 4 koordinātes? Tur jau īstenībā ir tikai divas - (x,y) un (x1, y1). Jo atsevišķi x nenozīmēpilnīgi neko.
Back to top
View user's profile Send e-mail
Inf3rnal



Joined: 15 Jun 2006
Posts: 118
Location: Neverland

PostPosted: Thu Dec 28, 2006 12:21 pm    Post subject:

Mana figūra ir četrstūris.
Tie divi parametri ir joordinātes plaknē - figūras sākumpunkts.

Es tos 4 punktus iztēlojos apmēram šādi:

x1 ____________ x2
....|.......................|
....|.......................|
x3|____________|x4

Tātad lai pagriztu visu figūru vajag mainīt visu 4 punktu koordinātes, manai figūrai ir tikai sākuma koordinātes , nevis katra punkta koordinātes. Es pats jau sajuku Crying or Very sad
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: Thu Dec 28, 2006 1:04 pm    Post subject:

Tev ir četrstūris vai taisnstūris?
Ja četrstūris tad tev ir 3 raksturlielumi - vienas virsotnes koordināte (x1,y1), un divi vektori - malas x1->x2 un x1->x3. Ar mazāk lielumiem tu savu figūru aprakstīt nevarēsi.
Bet ja tev ir taisnstūris, tad pietiktos ar divām koordinātēm - (x1,y1) un (x4,y4).

Vai arī es tevi galīgi nesaprotu?

Bet es tev iesaku - glabā visas četras koordinātes un rotē tās tā kā GiGa teica. Būs vienkāršāk.
Back to top
View user's profile Send e-mail
Display posts from previous:   
dev.gamez.lv Forum Index -> Grafikas programmēšana un teorija All times are GMT + 2 Hours
Goto page Previous  1, 2, 3  Next
Page 2 of 3

 
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