table里css画空心圆,在SVG中绘制一个空心圆圈

这里有一个程序来创建贝塞尔弧线尽可能接近都没有什么圆。你需要四条路径才能完成一个圆圈。

BezierCurve BezierArc(double ox, double oy, double r, double thetaa, double thetab)

{

double theta;

double cpx[4];

double cpy[4];

int i;

int sign = 1;

while (thetaa > thetab)

thetab += 2 * Pi;

theta = thetab - thetaa;

if (theta > Pi)

{

theta = 2 * Pi - theta;

sign = -1;

}

cpx[0] = 1;

cpy[0] = 0;

cpx[1] = 1;

cpy[1] = 4.0/3.0 * tan(theta/4);

cpx[2] = cos(theta) + cpy[1] * sin(theta);

cpy[2] = sin(theta) - cpy[1] * cos(theta);

cpx[3] = cos(theta);

cpy[3] = sin(theta);

cpy[1] *= sign;

cpy[2] *= sign;

cpy[3] *= sign;

for (i = 0; i < 4; i++)

{

double xp = cpx[i] * cos(thetaa) + cpy[i] * -sin(thetaa);

double yp = cpx[i] * sin(thetaa) + cpy[i] * cos(thetaa);

cpx[i] = xp;

cpy[i] = yp;

cpx[i] *= r;

cpy[i] *= r;

cpx[i] += ox;

cpy[i] += oy;

}

return BezierCurve({cpx[0], cpy[0]},{cpx[1], cpy[1]}, {cpx[2], cpy[2]}, {cpx[3], cpy[3]});

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值