Puuttuva pyöritys

Voit pyytää apua ohjelmointiongelmiin täältä.
Post Reply
RaatoX
Member
Posts: 54
Joined: Thu Aug 12, 2010 7:04 pm

Puuttuva pyöritys

Post by RaatoX »

Jos ohjelma pätkässä luodaan pisteitä "3D-avaruuteen" ja niitä pystyy liikuttamaan hiiri-ohjauksellla x-y-z suunnissa, niin kuinka ne saadaan pyörimään avaruudessa toistensa ympäri ?
Eli x toimii oikea/vasen, y toimii ylös/alas ja z toimii eteen/taakse, mutta ns. avaruuden pyöritys puuttuu. Kuinka tämä ominaisuus olisi helpoin/järkevin toteuttaa ?
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: Puuttuva pyöritys

Post by koodaaja »

Yksinkertaisella matriisipyöräytyksellä:

Code: Select all

SCREEN 640, 480

//alustetaan koordinaatit

Type point
    Field x#
    Field y#
    Field z#
EndType

For i = 0 To 499
    p.point = New(point)
    p\x = Rnd(-1,1)
    p\y = Rnd(-1,1)
    p\z = Rnd(-1,1)
Next i

Repeat
    
    //pyörityskulma sekä sen valmiiksi laskettavat sini ja kosini
    ang# = ang + 1
    cosa# = Cos(ang)
    sina# = Sin(ang)
    
    Lock
        For p.point = Each point
            
            //itse pyöritys, joka tapahtuu y-akselin ympäri (y-arvot eivät muutu)
            x# = p\x*cosa + p\z*sina
            z# =-p\x*sina + p\z*cosa
            
            //projisoidaan piste
            s# = 400.0/(z+3.0)
            
            rx = x*s+320
            ry = p\y*s+240
            
            //piirretään sen kohdalle ruksi
            Line rx-1, ry-1, rx+1, ry+1
            Line rx-1, ry+1, rx+1, ry-1
            
        Next p
    Unlock
    DrawScreen
Forever
Matriisi on taianomainen työkalu, jolla muodostetaan avaruuksien välisiä muunnoksia perustuen eri kantavektorijärjestelmiin. Niistä kannattanee koittaa löytää joku selkeä opas internetistä, ainakin omat selittäjän taitoni ovat ennenkin olleet kovilla näistä puhuttaessa :)
RaatoX
Member
Posts: 54
Joined: Thu Aug 12, 2010 7:04 pm

Re: Puuttuva pyöritys

Post by RaatoX »

Kiitos koodaaja :). Eiköhän tuosta ollut apua, kun ajatuksella käyn ohjelman läpi ja sovellan sen ideaani.
Pistän lopputuloksen jossain vaiheessa tänne näytille.
tuhoojabotti
Advanced Member
Posts: 485
Joined: Tue Aug 28, 2007 3:53 pm
Location: Suomi, Finland
Contact:

Re: Puuttuva pyöritys

Post by tuhoojabotti »

Tätä opasta on suositeltu minulle joskus. Löytyi kätevästi kirjanmerkeistä. :) Englanniksihan se on, mutta kyllä Englantia kannattaa opetella, jos ohjelmoinnista tykkää.
Imagedev.tuhoojabotti.com — “Programmer (noun): An organism that turns caffeine into code.”
Post Reply