예제 #1
0
파일: matrix.py 프로젝트: nlurkin/Drone
def omega2thetadot(t, o):
    mat1 = Matrix([[1, sin(t[0])*tan(t[1]), cos(t[0])*tan(t[1])], 
            [0, cos(t[0]), -sin(t[0])], 
            [0, sin(t[0])/cos(t[1]), cos(t[0])/cos(t[1])]])
    #mat1 = [[0, -sin(t[0]), cos(t[0])*cos(t[1])], [0, cos(t[0]), sin(t[0])*cos(t[1])], [1, 0, -sin(t[1])]]
    
    return mat1*o
예제 #2
0
파일: Body.py 프로젝트: nlurkin/Drone
 def computeThetaDot(self, dt):
     mat1 = Matrix([[1, sin(self.Angles[0])*tan(self.Angles[1]), cos(self.Angles[0])*tan(self.Angles[1])], 
                    [0, cos(self.Angles[0]), -sin(self.Angles[0])], 
                    [0, sin(self.Angles[0])/cos(self.Angles[1]), cos(self.Angles[0])/cos(self.Angles[1])]])
     self.ThetaDot = mat1*self.Omega
예제 #3
0
from ray import vector3
from ray import ray
from PIL import Image
from PIL import ImageDraw
from objects import face, sphere
from numpy.ma.core import tan


##  main process  ##
if __name__ == '__main__':
    ##  initialize parameters  ##
    w = 320
    h = 240
    PI = 3.14159265
    view_angle = 60 * PI / 180.0 
    view_ratio = tan(view_angle/2) / (w/2.0)
    img_size = (w,h)
    im = Image.new("RGB", img_size, 'rgb(128,128,128)')
    draw = ImageDraw.Draw(im)

    ##  objects in virtual space  ##
    ''' set light '''
    light = ray(vector3(1.0,-1.8,5.0), vector3(0.0,1.0,0.0))
    ''' set eye position'''
    eye = vector3(0.0,0.0,-1.0)
    ''' primitive objects '''
    obj_list = []
    obj_list.append(face(vector3(0.0,-2.0,0.0), vector3(0.0,1.0,0.0), 255))
    obj_list.append(face(vector3(0.0, 2.0,0.0), vector3(0.0,-1.0,0.0), 255<<8))
    obj_list.append(face(vector3(-2.0,0.0,0.0), vector3(1.0,0.0,0.0), 255<<16))
    obj_list.append(face(vector3( 2.0,0.0,0.0), vector3(-1.0,0.0,0.0), 255 + (255<<8)))