SVG路径:直线上的曲线
SVG Path: Curve tailing off of a straight line
我需要画一条直线(出于内容分离的目的),然后在它的末端开始一条连接到指定终点的曲线。
我的问题是在画完直线后开始画弧线时会出现急转弯。我怎样才能消除这个尖角?
作为一种解决方案,可以延长直线以使其平滑过渡为曲线。我只是不知道如何以编程的方式进行这项工作,因为端点会定期更改,而且它必须适用于所有用例。
Fiddle:(五分之一刻度)
http://jsfiddle.net/7k2neef2/1/
SVG路径:
M 56 494 l 324 0 A 100 100 0 0 0 231 275
我应该注意,我使用了一个函数来导出弧,然后将其附加到直线上。功能如下:
function describeArc(x, y, radius, startAngle, endAngle){
var arcSweep = endAngle - startAngle <= 180 ? "0" : "1";
var d = [
"A", radius, radius, 0, arcSweep, 0, x, y
].join(" ");
d = 'M 56 494 l 324 0 ' + d;
return d;
}
对于水平线段(x1,y1)-(x2,y1)和点(px,py),我们可以构建具有软连接的圆弧。圆心坐标
cx = x2
cy = y1 + R
让我们
dx = px - x2
dy = py - y1
then
dx^2 + (R-dy)^2 = R^2
dx^2 + R^2 - 2 * R * dy + dy^2 = R^2
dx^2 + dy^2 = 2 * R * dy
R = (dx^2 + dy^2) / (2*dy)
现在我们有了圆心,圆弧半径,起点和终点。如果您需要角度来构建圆弧,则起始角度为-Pi/2 (if py > y1)
,结束角度为atan2(py-cy, px-cx)
相关文章:
- Javascript:使用绝对路径设置img src
- 如何在d3.js中返回路径的y坐标
- 复制图像路径以单击它
- 从模块内部访问Express装载路径
- JS文件的路径正在消失
- 使用onclick绘制SVG路径
- jpm的默认Firefox路径没有'不起作用
- 如何使用jquery将base64图像路径转换为真实路径
- 可以用'吗/'在相对路径中
- Canvas+svg路径动画,在路径中的特定点暂停一段时间,然后继续
- 将Windows文件路径组织到文件夹中
- Ajax URL路径未替换当前URL
- 如何使用Javascript上传给定路径的文件
- 如何将要单独填充的每个HTML画布路径/形状分开
- 请求准备一个文件并返回路径,允许用户在准备好时下载
- SVG路径:直线上的曲线
- 如何绘制曲线svg路径
- 在javascript中使用TweenMax和KineticJS在bezier曲线路径中移动对象
- 添加三次贝塞尔曲线到小叶路径
- 沿着路径、曲线和线条滚动