
简单的界面示意功能,没有实现球边撞击、球球撞击运动。
l1 = 序列((4 + 4ί) ί^k, k, 0, 3)
l2 = (x(l1) * 2, y(l1))
q1 = 多边形(l2)
用复数画一个边长2:1的绿色矩形,作为桌面。

l3 = 合并({l2, {(0, -4), (0, 4)}})
l4 = 映射(圆周(a, 0.4), a, l3)
q2 = 多边形(映射(a - 0.3b, a, l2, b, l1 / 4))
A = 内点(q2)
c: 圆周(A, 0.3)
画六个洞,母球,母球圆心活动范围的框。

l7 = 合并({l2, {l2(1)}})
l8 = 序列(线段(l7(i), l7(i + 1)), i, 1, 4)
l9 = 映射(平移(a, b), a, l8, b, {(0, 0.5), (-0.5, 0), (0, -0.5), (0.5, 0)})
l10 = 映射(圆周(a, 0.5), a, l2)
poly1 = 多边形(扁平列表(映射({顶点(a, 1), 顶点(a, 2)}, a, l9)))
画出球桌外边框

d: 圆周(A, 0.3)
q3 = 多边形(l2)
B = (-1.24926, -0.5167)
C = 描点(圆周(B, 2.5))
D = 对称(C, B)
f = 线段(C, D)
给母球和桌面加个边框,然后事球杆,B点移动、C点旋转球杆。

E = 交点(c, 直线(C, D), 2)
g: 射线(D, E)
F = 交点(g, q1)
G = 交点(射线(A, 向量(E, F)), q2)
瞄准线及母球球心移动线

button1
a = 1
k: 垂线(A, g)
H = 交点(g, k)
b = 是否已定义(E)
A_0 = A
击球按钮button1,其点击时脚本如下:
赋值(a,0)
A_0=A
if(b,赋值(B,H-向量(B,D)))
启动动画(a,b)
滑动条a(0--1),其更新时脚本如下:
赋值(A,A_0+a (G-A_0))
H点确定球杆击出时移动位置

p: 如果(abs(x(G)) ≟ 7.7, y = y(G), x = x(G))
G' = 对称(G, p)
A' = 对称(A, p)
l: 射线(G', A')
I_{1} = 交点(l, q2)
I = 交点(l, q2)
I_0 = 如果(距离(I, G) ≟ 0, I_{1}, I)
m = 线段(G, I_0)
反射线路计算
