问题标签 [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.
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
flash - 如何修改我的代码以通过贝塞尔控制点?
大家好 -
我正在使用锚点和控制点使用curveTo创建形状。一切正常,但是当线条不直时,我无法弄清楚如何让我的线条穿过控制点(蓝点)的中心。
这是我绘制形状的代码:
我正在绘制的形状以供参考:
如何修改我的代码以使线条直接通过蓝色控制点?
提前致谢!
b
java - 在 Java 2D 中创建复合形状
我使用 Java 2D 将几条贝塞尔曲线 ( CubicCurve2D
) 修补在一起以创建一个“斑点”。我现在面临的问题是如何:
- 用给定的颜色有效地填充斑点。
- 有效地确定给定点是否位于 blob 内。
我注意到 thstCubicCurve2D
实现Shape
了它提供了许多contains
用于确定“内部”的方法,并且Graphics2D
能够Shape
通过fill(Shape)
(我相信使用Shape
的getPathIterator
方法来做到这一点)填充 a。
鉴于此,我希望我可以创建一个组合Shape
,从而我的getPathIterator(AffineTransform)
方法将简单地将底层PathIterator
s 链接在一起。但是,NoSuchElementException
一旦我的形状包含多个CubicCurve2D
. 即使我确实设法实现了这一点,我也不相信它会按预期工作,因为 aCubicCurve2D
总是在凸面填充,而我的“blob”由凹凸曲线组成。“包含”问题更加困难,因为一个点可以合法地位于 blob 内,但不能位于任何单独的曲线内。
- 我是以正确的方式解决这个问题(试图实现
Shape
?)还是有一种我不知道的惯用方式来做到这一点?我原以为合成几何形状的问题会相当普遍。 - 有人对如何解决这个问题有任何建议吗?
提前致谢。
math - 如果我只有 x 轴上的点,我该如何构造贝塞尔曲线?
如果我在 x 轴上只有点,我如何构造贝塞尔曲线?我可以这样做还是需要与 t 参数相关的 x 和 y 轴的点?我想在给定的间隔中构造一条贝塞尔曲线(从 N 度开始)和该间隔中的已知点(随机),但我只在 x 轴上有点!!这是否可行?
java - 检测闭合贝塞尔曲线中的自交叉
我通过将三次贝塞尔曲线拼接在一起创建了一个“斑点”形状(下面的屏幕截图)。我希望能够检测到曲线越过自身或另一条曲线的情况,并且想知道是否有推荐的方法或已知的算法来执行此操作?
我的一个想法是使用 aFlatteningPathIterator
将形状分解为直线段,然后检测给定段是否与另一个段相交,但我对是否有更好的方法感兴趣(因为这将具有二次性能)。如果我确实采用这种方法,Java中是否有库函数来检测两条线段是否重叠?
谢谢。
没有交叉
没有交叉 http://www.freeimagehosting.net/uploads/7ad585414d.png
交叉
math - 用于返回等弧长的贝塞尔曲线上的点列表的函数
某个地方的某个人不得不解决这个问题。我可以找到很多很棒的网站来解释这个问题以及如何解决它。虽然我确信它们写得很好并且对数学高手有意义,但那不是我。虽然我可能以一种模糊的方式理解,但我不明白如何将数学转化为我可以使用的函数。
所以我求求你,如果你有一个可以用任何语言做到这一点的函数,(甚至是 fortran 或 heck 6502 汇编程序)——请帮帮我。
- 更喜欢分析解决方案而不是迭代解决方案
编辑:旨在指定它是我正在尝试使用的立方贝塞尔曲线。
.net - 将点集转移到贝塞尔曲线
在我的 WPF 应用程序中,我正在研究一种绘图机制,以便在图像顶部进行注释。现在我有绘制路径的功能,其中我绘制的路径将由绘图中收集的点组成。更紧密地,我将 StylusPoints 添加到 InkPresenter,因为我通过 MouseMoved 事件收集它们。InkPresenter 被设置为 Canvas 的子项,然后它将保存绘图。如果有任何不同,我还可以在路径中绘制 LineSegment 吗?
我对这幅画的问题是它不会很流畅。因此,我希望将结果曲线表示为贝塞尔曲线。这是一种在 Adobe Illustrator 中使用的技术。现在; 有没有办法处理这个?首先构建一个代表绘制的凹凸曲线的点集合,然后将其转换为类似于绘制曲线的贝塞尔曲线?
matlab - matlab如何画出贝塞尔曲线
Matlab绘制贝塞尔曲线的方法是什么?您必须自己进行编程吗?
我不是在寻找用户制作的例程,而是在询问 Matlab 是否提供了一种标准的方式来绘制它们。
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但它是用后记写的,这种语言对我来说根本没有意义 - 它在我的脑海中。
edit - 拖动贝塞尔曲线进行编辑
如果您使用 Gimp 或 Photoshop 等图形编辑程序,您就会明白我的意思。要在这些程序上编辑曲线(可能是贝塞尔曲线),我们可以点击曲线,拖动鼠标,曲线会相应地改变。我怀疑这个机制背后的所有东西都与向量有关,但我找不到任何文件提到如何做到这一点。谁能告诉我我该怎么做?非常感谢。
[编辑] 我的意思是选择曲线本身来改变(编辑)它(点击曲线,然后拖动曲线来编辑它)。通常,我们选择控制点来改变曲线。我知道要更改曲线,我需要编辑控制点,但是如何将曲线上的更改解释为对控制点的更改?