Example #1
0
    def reset(self):

        tangent = math.tan(self.FIELD_OF_VIEW_IN_DEGREES / 2.0 / 180.0 *
                           math.pi)
        distanceFromTarget = self.sceneRadius / tangent
        self.position = Point3D(0, 0, distanceFromTarget)
        #        print(self.position)
        self.target = Point3D(0, 0, 0)
        #        print(self.target)
        self.up = self.ground.returnCopy()
        t2p = self.position - self.target
        M1 = Matrix4x4.rotationAroundOrigin(np.pi / 3, Vector3D(1, 0, 0))
        #        print('M1',M1)
        #        M2 = Matrix4x4.rotationAroundOrigin( np.pi/2, Vector3D(1,0,0) )
        #        print(M2)
        M3 = Matrix4x4.rotationAroundOrigin(-np.pi / 6, Vector3D(0, 1, 0))
        #        print('M3',M3)
        #        t2p = M2 * t2p
        #        t2p = M1 * t2p

        #        M_temp =  Matrix4x4()
        #        M_temp.m = [ 0.0, 0.0, -1.0, 0.0,
        #                   -1.0, 0.0, 0.0, 0.0,
        #                   0.0, 1.0, 0.0, 0.0,
        #                   0.0, 0.0, 0.0, 1.0 ]

        t2p = M1 * t2p
        t2p = M3 * t2p
        self.position = self.target + t2p
        self.ground = Vector3D(0, 0, 1)
Example #2
0
    def orbit(self, old_x_pixels, old_y_pixels, new_x_pixels, new_y_pixels):
        pixelsPerDegree = self.viewportRadiusInPixels / float(self.ORBITING_SPEED_IN_DEGREES_PER_RADIUS_OF_VIEWPORT)
        radiansPerPixel = 1.0 / pixelsPerDegree * math.pi / 180.0

        t2p = self.position - self.target

        M = Matrix4x4.rotationAroundOrigin((old_x_pixels - new_x_pixels) * radiansPerPixel, self.ground)
        t2p = M * t2p
        self.up = M * self.up
        right = (self.up ^ t2p).normalized()
        M = Matrix4x4.rotationAroundOrigin((old_y_pixels - new_y_pixels) * radiansPerPixel, right)
        t2p = M * t2p
        self.up = M * self.up
        self.position = self.target + t2p
Example #3
0
    def orbit(self,old_x_pixels,old_y_pixels,new_x_pixels,new_y_pixels):
        pixelsPerDegree = self.viewportRadiusInPixels / float(self.ORBITING_SPEED_IN_DEGREES_PER_RADIUS_OF_VIEWPORT)
        radiansPerPixel = 1.0 / pixelsPerDegree * math.pi / 180.0

        t2p = self.position - self.target

        M = Matrix4x4.rotationAroundOrigin( (old_x_pixels - new_x_pixels) * radiansPerPixel, self.ground )
        t2p = M * t2p
        self.up = M * self.up
        right = (self.up ^ t2p).normalized()
        M = Matrix4x4.rotationAroundOrigin( (old_y_pixels - new_y_pixels) * radiansPerPixel, right )
        t2p = M * t2p
        self.up = M * self.up
        self.position = self.target + t2p
    def transform(self):
        tangent = math.tan( self.FIELD_OF_VIEW_IN_DEGREES/2.0 / 180.0 * math.pi )
        viewportRadius = self.nearPlane * tangent
        if self.viewportWidthInPixels < self.viewportHeightInPixels:
            viewportWidth = 2.0*viewportRadius
            viewportHeight = viewportWidth * self.viewportHeightInPixels / float(self.viewportWidthInPixels)
        else:
            viewportHeight = 2.0*viewportRadius
            viewportWidth = viewportHeight * self.viewportWidthInPixels / float(self.viewportHeightInPixels)
        glFrustum(
            - 0.5 * viewportWidth,  0.5 * viewportWidth,    # left, right
            - 0.5 * viewportHeight, 0.5 * viewportHeight,   # bottom, top
            self.nearPlane, self.farPlane
            )

        M = Matrix4x4.lookAt(self.position, self.target, self.up, False)
        glMultMatrixf(M.get())
Example #5
0
    def transform(self):
        tangent = math.tan( self.FIELD_OF_VIEW_IN_DEGREES/2.0 / 180.0 * math.pi )
        viewportRadius = self.nearPlane * tangent
        if self.viewportWidthInPixels < self.viewportHeightInPixels:
            viewportWidth = 2.0*viewportRadius
            viewportHeight = viewportWidth * self.viewportHeightInPixels / float(self.viewportWidthInPixels)
        else:
            viewportHeight = 2.0*viewportRadius
            viewportWidth = viewportHeight * self.viewportWidthInPixels / float(self.viewportHeightInPixels)
        glFrustum(
            - 0.5 * viewportWidth,  0.5 * viewportWidth,    # left, right
            - 0.5 * viewportHeight, 0.5 * viewportHeight,   # bottom, top
            self.nearPlane, self.farPlane
            )

        M = Matrix4x4.lookAt(self.position, self.target, self.up, False)
        glMultMatrixf(M.get())