from math import sqrt from pycat.core import Window, Sprite, Point, Color from pycat.base.event import MouseEvent w = Window() w.set_clear_color(126, 200, 80) hole = w.create_circle(700, 500, 30, Color.BLACK) SPEED = 0.05 FRICTION = 0.97 def dot(u: Point, v: Point): return u.x * v.x + u.y * v.y def project(u: Point, v: Point): return dot(u, v) * v / dot(v, v) def reflect(u: Point, v: Point): return u - 2 * project(u, v) class Ball(Sprite): def on_create(self): self.aim = w.create_line() self.scale = 0.1 self.image = "golfball.png" self.is_aimmimg = True self.speed = 0
from cv2 import rotate from pycat.core import Window, Sprite, Point, Color from pycat.base.event import MouseEvent from typing import List from math import sqrt from pyrsistent import s from sympy import rotations w = Window() w.set_clear_color(126, 200, 80) hole = w.create_circle(1100, 500, 32, color = Color.BLACK) S = 0.05 FRICTION = 0.98 def dot(u:Point,v:Point): return u.x*v.x + u.y*v.y def project(u:Point,v:Point): return dot(u,v)* v/ dot(v,v) def reflect(u:Point,v:Point): return u - 2*project(u,v) class Golf(Sprite): def on_create(self): self.aim = w.create_line(width=6) self.aim.visible = True self.layer = 1