我有三个不在同一条线上的点,最初我想通过这三个点绘制一个圆弧,我做了 . 但实际上镀铬并没有画出真正的圆形,而是使用几条贝塞尔曲线来假装它是圆形,因为贝塞尔曲线很便宜 . 如果铬作为一个中间人这样做,为什么我不是自己绘制圆形贝塞尔(两个bezier,从点1到中点,中点到点3)?这将更清洁,更便宜(2与浏览器决定的未知数量的贝塞尔曲线相比) . 那是我被困的地方,怎么样? “控制点”应该在哪里?
这是我在javascript中的旧绘制弧函数
drawArc = function(startPoint, thirdPoint, endPoint){
var ctx = this.ctx;
ctx.lineWidth = this.strokeWidth;
ctx.strokeStyle = this.strokeColor;
var centerObject = circleCenter( new Point(startPoint.x, startPoint.y),
new Point(thirdPoint.x, thirdPoint.y),
new Point(endPoint.x, endPoint.y) );
var centerX = centerObject.x;
var centerY = centerObject.y;
var r = centerObject.r
var angle = Math.atan2(centerX-startPoint.x, centerY-startPoint.y);
// console.log(centerObject);
if (!angle){