【发布时间】:2013-10-21 14:06:32
【问题描述】:
我正在尝试创建一个位于完整圆圈底部的内圈。我一直在尝试使用paper.path() 创建它。
这里是jsfiddle here的例子
paper.path("M32,180 L248,180 a15,10 8 0,1 -215,0 z");
【问题讨论】:
我正在尝试创建一个位于完整圆圈底部的内圈。我一直在尝试使用paper.path() 创建它。
这里是jsfiddle here的例子
paper.path("M32,180 L248,180 a15,10 8 0,1 -215,0 z");
【问题讨论】:
像这样使用sector 函数:
sector(140, 140, 116, 200, 340, {})
几乎返回你想要的。只需将第一个 move to 命令替换为移动到圆弧的第一个点而不是圆心即可。
替换
return paper.path(["M", cx, cy, "L", x1, y1, "A", r, r, 0, +(endAngle - startAngle > 180), 0, x2, y2, "z"]).attr(params);
与
return paper.path(["M", x1, y1, "L", x1, y1, "A", r, r, 0, +(endAngle - startAngle > 180), 0, x2, y2, "z"]).attr(params);
你会得到:
paper.path("M30.995655988834628,179.67433662577756L30.995655988834628,179.67433662577756A116,116,0,0,0,249.00434401116536,179.67433662577756z");
这似乎是你所追求的。
【讨论】:
sector 函数。然后我尝试使用sector,调整值使其居中,结果非常接近。然后我搜索了svg path 以刷新我对M、L、A 和z 的意思的记忆,很明显你不应该移动到中心但是而是直接到弧的起点。宾果游戏!