问题标签 [cubic-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 投票
1 回答
60 浏览

javascript - 给定 x-pos 在三次贝塞尔曲线上查找点

我有一个 CSS 类型的三次贝塞尔曲线,其中
A = 0,0
B = a, b where 0<a<1
C = p, q where 0<p<1
D = 1, 1

我想要一个pointOnBezier(a,b,p,q,x) => {x:x, y:y}
我发现这有帮助但没有数学公式的函数
https://upload.wikimedia.org/wikipedia/commons/d/db/B%C3%A9zier_3_big.gif
任何帮助将不胜感激。提前致谢!!!

0 投票
0 回答
34 浏览

javascript - 是否可以使用三次贝塞尔曲线多次运行一个函数?

是否可以使用三次贝塞尔曲线以设置的间隔运行函数 X 次?

例如,该函数应该在 5 秒内运行 10 次。如何计算频率以使其匹配三次贝塞尔曲线?

0 投票
1 回答
258 浏览

bezier - 如何在inkscape中绘制四次贝塞尔曲线

当我绘制带有 4 个控制点的三次贝塞尔曲线时,我选择常规贝塞尔路径,画一条线,然后拖出 2 个手柄。

在此处输入图像描述

在此处输入图像描述

但现在,我需要绘制一条有 5 个控制点的四次曲线。我不知道该怎么做。 在此处输入图像描述

如何将第 5 个控制点添加到句柄?我将句柄视为控制点是否正确?

谢谢各位朋友~~

0 投票
1 回答
36 浏览

python - 如何确定贝塞尔曲线 t 值的理想增量大小

我正在玩贝塞尔曲线试图理解它。

这是代码。

在绘制曲线的部分

如果 t 增加一个小值,它将多次重绘相同的像素,更大的值将在像素之间留下间隙。有没有办法找到一个理想的增量大小,它不会重绘像素,但也不会根据曲线留下间隙?

像素间隙:

在此处输入图像描述

重绘相同的像素:

在此处输入图像描述

0 投票
1 回答
97 浏览

c++ - 哪种方式更好地呈现文本:弧线或贝塞尔曲线?

我正在考虑在我的 OpenGL 项目中实现文本,但我希望它尽可能优化,以便它更快。

我想实现一个真正的字体。

问题是我有两种渲染它们的方法,要么使用贝塞尔曲线,要么使用弧线。

所以我有两个选择,我用曲线绘制每个角色,或者用弧线绘制它们。

例如:

  • “U”可以画成半圆和两条线或贝塞尔曲线
  • “O”可以画成椭圆或两条贝塞尔曲线

看起来像这样: 贝塞尔实现

圈子实现

哪个在计算上更轻?

0 投票
1 回答
20 浏览

jupyter-lab - ipycanvas 显示最终的 stroke_lines 动画

所以我在玩一些贝塞尔曲线的动画——只是学习如何使用 ipycanvas (0,10,2) 的一部分——我制作的动画真的让我头疼。我期望看到的是 4 个贝塞尔控制点之间的一组直线,它们在画布周围“弹跳”,贝塞尔曲线也随之移动。

我确实得到了移动的贝塞尔曲线——但控制点保持静止。更奇怪的是,他们在最后的位置上是静止的,曲线来迎接他们。

现在有时 Python 的结构和引用会变得有点棘手,所以如果你没有真正考虑清楚,有时会得到令人困惑的结果——这完全可能是正在发生的事情——但我不知所措。

因此,为了确保我不感到困惑,我在开始时打印了控制点(pts),然后将它们显示到画布上。这证实了我的猜想。通过量子隧道或其他一些神奇的时间旅行,这条线canvas.stroke_lines(pts)到达未来并抓住未来pts存在的阵列并将控制点保持在其最终状态。

其他所有使用都pts使用当前时间状态。

所以我需要知道的是 A) 物理定律是安全的,我只是太笨了,无法理解我自己的代码。B)我应该报告 ipycanvas 中有一些奇怪的错误。C)如何通过这种时间旅行代码获利——比如,我们可以用它来以某种方式分解大量数字吗?

说真的,我试图思考可能发生的事情,但我却一头雾水。由于 ipycanvas 正在与浏览器/javascript 对话,因此可能首先呈现帧的所有数据,并且用于保存pts数据的数组stroke_lines最终得到最终值......而 B 数组在每个循环中重新创建...... . 这是一个猜测。

0 投票
0 回答
56 浏览

javascript - 如何获得多条三次贝塞尔曲线的点(x,y,angle)?

现在我用的方法只能得到一条曲线的点,因为第二条曲线我不知道起点,我试着用第一条曲线的终点作为第二条曲线的起点,但这似乎是错误的,我尝试了多种变体,但似乎都不起作用。有任何想法吗?这是我的曲线,我将它们保存在一个数组中: