Example #1
0
    def apply(self, vertex):
        v = [vertex[0], vertex[1]]
        sin = math.sin(self.rotation)
        cos = math.cos(self.rotation)

        # rotate
        x = v[0]
        y = v[1]
        v[0] = x * cos - y * sin
        v[1] = x * sin + y * cos
        # scale
        v[0] *= self.scale[0]
        v[1] *= self.scale[1]

        # translate
        v[0] += self.translation[0]
        v[1] += self.translation[1]

        return Vec2(round(v[0]), round(v[1]))
Example #2
0
def renderShadows(mesh):
    renderer.setTransform(mesh.transform)
    renderer.color = Color(20, 21, 22)
    light = Vec2.fromTuple(mousePosition) - Vec2.fromTuple(
        mesh.transform.translation)
    Shadow.renderShadow(renderer, mesh.vertices, light)
Example #3
0
import sys
import pygame
from pygame.locals import *
from pygame.time import Clock

from game.Renderer import Renderer
from game import Shadow
from game.Geometry import Vec2
from game.components.Transform import *
from game.Mesh import *

renderer = Renderer()

triangle_vertices = [Vec2(0, 50), Vec2(-50, -30), Vec2(50, -30)]
quad_vertices = [Vec2(-20, -20), Vec2(20, -20), Vec2(20, 20), Vec2(-20, 20)]

Triangle1 = Mesh(triangle_vertices)
Triangle1.transform = Transform(translation=(400, 300))

meshes = [Triangle1]

mousePosition = (0, 0)


def initialize():
    global renderer
    pygame.init()

    pygame.display.set_caption("Shadow")
    pygame.mouse.set_visible(False)
Example #4
0
def projectVertices(vertices, origin):
    newVertices = vertices[:]
    for v in reversed(vertices):
        v2 = Vec2.fromTuple(v)
        newVertices.append(projectVertex(v2, origin).toTuple())
    return newVertices
def renderShadows(mesh):
    renderer.setTransform( mesh.transform )
    renderer.color = Color(20, 21, 22)
    light = Vec2.fromTuple(mousePosition) - Vec2.fromTuple(mesh.transform.translation)
    Shadow.renderShadow(renderer, mesh.vertices, light)
Example #6
0
def projectVertices(vertices, origin):
    newVertices = vertices[:]
    for v in reversed(vertices):
        v2 = Vec2.fromTuple(v)
        newVertices.append(projectVertex(v2, origin).toTuple())
    return newVertices    
Example #7
0
 def setUp(self):
     self.v0 = Vec2(0, 0)
     self.v1 = Vec2(1, 1)
     self.v2 = Vec2(2, 3)
Example #8
0
 def testCrossProduct(self):
     v3 = self.v2.cross(Vec2(4, 5))
     self.assertEqual(v3, -2)
Example #9
0
 def testDotProduct(self):
     v3 = self.v2.dot(Vec2(4, 5))
     self.assertEqual(v3, 4 * 2 + 3 * 5)
Example #10
0
 def testScalarMultiplication(self):
     v3 = self.v2 * 3
     self.assertEqual(v3, Vec2(6, 9))
Example #11
0
 def testAddition(self):
     v3 = self.v1 + self.v2
     self.assertEqual(v3, Vec2(3, 4))
 def testEdgeNormal(self):
     normal = Vec2.fromTuple(Shadow.getEdgeNormal(Vec2(5, 5), Vec2(5, 6)))
     self.assertEqual(normal, Vec2(-1, 0))