我使用这个公式来计算二次曲线上的点:
cPx2 = (1-t)*(1-t)* x1+2 * (1-t)*t*qcX + t*t*x2;
cPy2 = (1-t)*(1-t)* y1+2 * (1-t)*t*qcY + t*t*y2;
Run Code Online (Sandbox Code Playgroud)
当我设置 t = 10 并遍历曲线时,我得到了这个:
看起来它正在获得曲线上的点(花朵形状),但也获得了“控制点”上的所有点。
我用这个公式来生成点:
flowerArray=[]
for(let i = 0; i < numVertices+1; i++) {
angle = i * spacing;
x = centerX + cos(radians(angle)) * 180;
y = centerY+ sin(radians(angle)) * 180;
if(i == 0) {
flowerArray.push(x,y);
}else {
cAngle = angle - spacing/2;
cX = centerX + cos(radians(cAngle)) * 100;
cY = centerY+ sin(radians(cAngle)) * 100;
flowerArray.push(cX,cY,x,y)
}
} …Run Code Online (Sandbox Code Playgroud)