问题标签 [bezier]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
8 回答
5257 浏览

geometry - 如何将三次曲线的 2 个控制点转换为二次曲线的单个控制点?

在网上搜索后,我看到各种论坛中的各种人都在暗示用二次曲线近似三次曲线。但我找不到公式。

我想要的是这样的:

输入:startX、startY、control1X、control1Y、control2X、control2Y、endX、endY 输出:startX、startY、controlX、controlY、endX、endY

其实,既然起点和终点是一样的,我真正需要的只是……

输入:startX、startY、control1X、control1Y、control2X、control2Y、endX、endY 输出:controlX、controlY

0 投票
1 回答
1249 浏览

flash - 如何修改我的代码以通过贝塞尔控制点?

大家好 -

我正在使用锚点和控制点使用curveTo创建形状。一切正常,但是当线条不直时,我无法弄清楚如何让我的线条穿过控制点(蓝点)的中心。

这是我绘制形状的代码:

我正在绘制的形状以供参考:

如何修改我的代码以使线条直接通过蓝色控制点?

提前致谢!

b

0 投票
2 回答
2514 浏览

java - 在 Java 2D 中创建复合形状

我使用 Java 2D 将几条贝塞尔曲线 ( CubicCurve2D) 修补在一起以创建一个“斑点”。我现在面临的问题是如何:

  1. 用给定的颜色有效地填充斑点。
  2. 有效地确定给定点是否位于 blob 内。

我注意到 thstCubicCurve2D实现Shape了它提供了许多contains用于确定“内部”的方法,并且Graphics2D能够Shape通过fill(Shape)(我相信使用ShapegetPathIterator方法来做到这一点)填充 a。

鉴于此,我希望我可以创建一个组合Shape,从而我的getPathIterator(AffineTransform)方法将简单地将底层PathIterators 链接在一起。但是,NoSuchElementException一旦我的形状包含多个CubicCurve2D. 即使我确实设法实现了这一点,我也不相信它会按预期工作,因为 aCubicCurve2D总是在凸面填充,而我的“blob”由凹凸曲线组成。“包含”问题更加困难,因为一个点可以合法地位于 blob 内,但不能位于任何单独的曲线内。

  • 我是以正确的方式解决这个问题(试图实现Shape?)还是有一种我不知道的惯用方式来做到这一点?我原以为合成几何形状的问题会相当普遍。
  • 有人对如何解决这个问题有任何建议吗?

提前致谢。

0 投票
1 回答
310 浏览

math - 如果我只有 x 轴上的点,我该如何构造贝塞尔曲线?

如果我在 x 轴上只有点,我如何构造贝塞尔曲线?我可以这样做还是需要与 t 参数相关的 x 和 y 轴的点?我想在给定的间隔中构造一条贝塞尔曲线(从 N 度开始)和该间隔中的已知点(随机),但我只在 x 轴上有点!!这是否可行?

0 投票
5 回答
2800 浏览

java - 检测闭合贝塞尔曲线中的自交叉

我通过将三次贝塞尔曲线拼接在一起创建了一个“斑点”形状(下面的屏幕截图)。我希望能够检测到曲线越过自身或另一条曲线的情况,并且想知道是否有推荐的方法或已知的算法来执行此操作?

我的一个想法是使用 aFlatteningPathIterator将形状分解为直线段,然后检测给定段是否与另一个段相交,但我对是否有更好的方法感兴趣(因为这将具有二次性能)。如果我确实采用这种方法,Java中是否有库函数来检测两条线段是否重叠?

谢谢。

没有交叉

没有交叉 http://www.freeimagehosting.net/uploads/7ad585414d.png

交叉

跨界 http://www.freeimagehosting.net/uploads/823748f8bb.png

0 投票
1 回答
2603 浏览

math - 用于返回等弧长的贝塞尔曲线上的点列表的函数

某个地方的某个人不得不解决这个问题。我可以找到很多很棒的网站来解释这个问题以及如何解决它。虽然我确信它们写得很好并且对数学高手有意义,但那不是我。虽然我可能以一种模糊的方式理解,但我不明白如何将数学转化为我可以使用的函数。

所以我求求你,如果你有一个可以用任何语言做到这一点的函数,(甚至是 fortran 或 heck 6502 汇编程序)——请帮帮我。

  • 更喜欢分析解决方案而不是迭代解决方案

编辑:旨在指定它是我正在尝试使用的立方贝塞尔曲线。

0 投票
2 回答
1610 浏览

.net - 将点集转移到贝塞尔曲线

在我的 WPF 应用程序中,我正在研究一种绘图机制,以便在图像顶部进行注释。现在我有绘制路径的功能,其中我绘制的路径将由绘图中收集的点组成。更紧密地,我将 StylusPoints 添加到 InkPresenter,因为我通过 MouseMoved 事件收集它们。InkPresenter 被设置为 Canvas 的子项,然后它将保存绘图。如果有任何不同,我还可以在路径中绘制 LineSegment 吗?

我对这幅画的问题是它不会很流畅。因此,我希望将结果曲线表示为贝塞尔曲线。这是一种在 Adob​​e Illustrator 中使用的技术。现在; 有没有办法处理这个?首先构建一个代表绘制的凹凸曲线的点集合,然后将其转换为类似于绘制曲线的贝塞尔曲线?

0 投票
4 回答
17284 浏览

matlab - matlab如何画出贝塞尔曲线

Matlab绘制贝塞尔曲线的方法是什么?您必须自己进行编程吗?

我不是在寻找用户制作的例程,而是在询问 Matlab 是否提供了一种标准的方式来绘制它们。

0 投票
4 回答
11988 浏览

c# - 如何在 C# 中找到给定开始、结束和 2 个交叉点的 BezierSegment 的控制点 - AKA Cubic Bezier 4-point Interpolation

我一直在努力寻找一种可以理解的方法来做到这一点。我有四个点,一个 StartPt、EndPoint 和 Intersection 点来表示贝塞尔曲线中的峰值和谷值。

C# 中的 BezierSegment 需要 start、controlPoint 1、controlPoint 2、endpoint - 但是我没有任何控制点我只有沿着贝塞尔曲线的这两个点(我称它们为上面的交点)......如何我可以计算两个控制点吗?

在此先感谢,这让我发疯了。

这里有某种解释:http: //www.tinaja.com/glib/nubz4pts1.pdf但它是用后记写的,这种语言对我来说根本没有意义 - 它在我的脑海中。

0 投票
6 回答
3249 浏览

edit - 拖动贝塞尔曲线进行编辑

如果您使用 Gimp 或 Photoshop 等图形编辑程序,您就会明白我的意思。要在这些程序上编辑曲线(可能是贝塞尔曲线),我们可以点击曲线,拖动鼠标,曲线会相应地改变。我怀疑这个机制背后的所有东西都与向量有关,但我找不到任何文件提到如何做到这一点。谁能告诉我我该怎么做?非常感谢。

[编辑] 我的意思是选择曲线本身来改变(编辑)它(点击曲线,然后拖动曲线来编辑它)。通常,我们选择控制点来改变曲线。我知道要更改曲线,我需要编辑控制点,但是如何将曲线上的更改解释为对控制点的更改?