コード例 #1
0
ファイル: camera.py プロジェクト: CC3501/CC3501-2019-1
 def place(self):
     """
     Place camera in world.
     """
     _glLoadIdentity()
     _gluLookAt(self._r * _sin(self._theta) * _cos(self._phi),
                self._r * _sin(self._theta) * _sin(self._phi),
                self._r * _cos(self._theta), self._center.get_x(),
                self._center.get_y(), self._center.get_z(),
                self._up.get_x(), self._up.get_y(), self._up.get_z())
コード例 #2
0
ファイル: camera.py プロジェクト: CC3501/CC3501-2019-1
    def rotate_z(self, angle):
        """
        Rotate eye position in z-axis.

        :param angle: Rotation angle
        :type angle: float, int
        """
        x = self._pos.get_x() * _cos(angle) - self._pos.get_y() * _sin(angle)
        y = self._pos.get_x() * _sin(angle) + self._pos.get_y() * _cos(angle)
        z = self._pos.get_z()
        self._pos.set_x(x)
        self._pos.set_y(y)
        self._pos.set_z(z)
コード例 #3
0
ファイル: camera.py プロジェクト: CC3501/CC3501-2019-1
    def get_pos_z(self):
        """
        Return z position.

        :return:
        """
        return self._r * _cos(self._theta)
コード例 #4
0
ファイル: camera.py プロジェクト: CC3501/CC3501-2019-1
    def get_pos_x(self):
        """
        Return x position.

        :return:
        """
        return self._r * _sin(self._theta) * _cos(self._phi)
コード例 #5
0
ファイル: camera.py プロジェクト: CC3501/CC3501-2019-1
    def rotate_center_z(self, angle):
        """
        Rotate center around z.

        :param angle: Rotation angle
        :type angle: float, int
        """
        rad = _math.sqrt(self._pos.get_x()**2 + self._pos.get_y()**2)
        self._pos.set_x(rad * _cos(self._angle))
        self._pos.set_y(rad * _sin(self._angle))
コード例 #6
0
ファイル: camera.py プロジェクト: CC3501/CC3501-2019-1
    def get_view(self):
        """
        Get view matrix.

        :return:
        """
        return _tr2.lookAt(
            _np.array([
                self._r * _sin(self._theta) * _cos(self._phi),
                self._r * _sin(self._theta) * _sin(self._phi),
                self._r * _cos(self._theta)
            ]),
            _np.array([
                self._center.get_x(),
                self._center.get_y(),
                self._center.get_z()
            ]),
            _np.array([self._up.get_x(),
                       self._up.get_y(),
                       self._up.get_z()]))