Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SVG路径,圆角为圆弧_Svg_Vector Graphics_Curve_Elliptic Curve_Geometric Arc - Fatal编程技术网

SVG路径,圆角为圆弧

SVG路径,圆角为圆弧,svg,vector-graphics,curve,elliptic-curve,geometric-arc,Svg,Vector Graphics,Curve,Elliptic Curve,Geometric Arc,我需要创建带有圆角的SVG路径,以便将它们导出到DXF进行剪切。我的问题是,角点应该是圆的圆弧,而不是一些贝塞尔曲线 使用圆弧命令使用直角相对容易,因为半径也是从拐角到圆弧起点的距离。从其他角度看,情况要复杂得多 给定一个角和一个半径,是否有计算圆弧起点和终点的公式 右上角很容易,但左下角很棘手,因为我必须找出直线的终点和圆弧的起点 我发现,它链接了一个公式,可以将端点参数化转换为中心参数化。这没用,因为我也不知道圆心应该在哪里 只计算圆弧,而不是两条直线之间的圆弧替换锐角 只有当某些边平行于

我需要创建带有圆角的SVG路径,以便将它们导出到DXF进行剪切。我的问题是,角点应该是圆的圆弧,而不是一些贝塞尔曲线

使用
圆弧
命令使用直角相对容易,因为半径也是从拐角到圆弧起点的距离。从其他角度看,情况要复杂得多

给定一个角和一个半径,是否有计算圆弧起点和终点的公式

右上角很容易,但左下角很棘手,因为我必须找出直线的终点和圆弧的起点

我发现,它链接了一个公式,可以将端点参数化转换为中心参数化。这没用,因为我也不知道圆心应该在哪里

只计算圆弧,而不是两条直线之间的圆弧替换锐角

只有当某些边平行于坐标系或更改半径时,解才起作用

尝试对linejoin或几条三次曲线使用一些技巧,我不需要

即使是Inkscape(我用来绘制上图)也使用5条立方曲线,而不是圆弧,即使我使用圆来创建此形状


如果您能给我一些提示,我将非常感激。

倒角角的几何图形如下所示:

角度ABC等于θ(倒角角的外角)。这被BD平分,因此角度DBC等于θ/2。这意味着从角点到点CA的偏移距离d等于r×tan(θ/2)

对于直角,θ=90°,tan(θ/2)=1,因此d等于r


正如Robert Longson所说,您将幸运地找到一个SVG应用程序,它使用圆弧段导出倒角角。但是经过一点努力,,应该可以通过编程方式检测和转换它们。

浏览器通常通过一个或多个Bezier实现圆弧绘制,因此即使您计算出正确的圆弧来绘制,它也不会改变任何东西。它确实改变了我的事情,因为我生成的SVG不仅显示在浏览器中,而且稍后会导出到DXF进行剪切或编辑策划。在这里,有一个具有恒定角半径的倒角角是很重要的。如何使用Beziers定义非直角的圆角,这样就不会偏离圆弧?是否有计算控制点的算法?我希望在拐角处只有一条弧/曲线,这样路径就不会变得太复杂。这看起来很有希望,谢谢。稍后我必须将路径导出到DXF,以剪切或绘制它们,这样它才与我相关。适用于直角,我想允许其他角度。更新:适用于直角<代码>数学abs(半径*数学tan((180角)/2)如果你有角的角度和半径。@Dehalion,我很想看看你的SVG路径倒角的最终代码,如果它很容易从你的程序中提取的话。我有一个类似的问题,我需要通过编程为非直角的激光切割图案生成圆角。@Hypher我正在准备bl关于这个,请稍等:D