【问题标题】:Rounded corners on triangle in SVGSVG中三角形上的圆角
【发布时间】:2013-07-16 04:15:31
【问题描述】:

我正在尝试制作一个圆角的三角形。三角形将如下所示:

左下角是唯一一个看起来相当容易制作的地方,主要是因为这是一个 90 度的“转弯”。该回合是使用 SVG 中的 Q 命令进行的,带有以下参数:

Q x,y + height, x, y + height - RADIUS 从我正在创建的弧的右侧开始。

但是,其他角是可变的,具体取决于三角形的大小。我可以使用atan() 函数计算它们的角度,但我不知道如何实现它们。我希望它遵循 RADIUS 变量(在本例中为 5)。

有什么想法吗?

【问题讨论】:

    标签: javascript svg raphael


    【解决方案1】:

    我假设您只需要边平行于基本轴的直角三角形,这会使事情变得容易一些。

    正如你所说,直角很容易。

    对于其他角度,您需要计算圆心。假设wh 是三角形的宽度和高度。假设x, y 是最右边节点的坐标。最右边三角形的中心是:x - r * h / w, y - r。您需要绘制的圆弧所覆盖的角度是π - α,其中α 是您使用atan 计算的角角度。

    最上角的处理方式类似。

    这应该让你开始。

    【讨论】:

      【解决方案2】:

      使用a 命令,我可以用某个rXrY 制作非常详细的角。我会这样调用函数:

      a 5 5 0 0 1 0 5 5,它会做一个半径为 5 和dX = 5dY = 5 的圆。这是完美的。

      半径在 90 度时是理想的,所以当我有一个 50 度角时,我只使用 (50 / 90) * RADIUS 作为值,它是完美的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-08-12
        • 1970-01-01
        • 2014-12-10
        • 1970-01-01
        • 2012-08-20
        • 1970-01-01
        • 2014-05-20
        • 1970-01-01
        相关资源
        最近更新 更多