- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我想在我的屏幕上生成一个随机样条。这是我目前所拥有的:
public class CurvedPath {
Random rn;
CatmullRomSpline<Vector2> curve;
float[] xPts;
float[] yPts;
Vector2[] points;
public CurvedPath(){
points = new Vector2[10];
rn = new Random();
curve = new CatmullRomSpline<Vector2>(points,false);
for(int i = 0 ; i < 10; i++){
xPts[i] = rn.nextFloat()*SampleGame.WIDTH;
yPts[i] = SampleGame.HEIGHT*i/10;
}
}
我对提供的有关如何使用 CatmullRomSpline
对象 ( https://github.com/libgdx/libgdx/wiki/Path-interface-&-Splines) 的文档感到很困惑
基本上,我在这里尝试做的是生成 10 个随机点,均匀分布在屏幕的高度上,并随机放置在屏幕的宽度上,以创建随机的弯曲路径。
因此在构造函数的 for 循环中,您可以看到我为样条生成了每个控制点的 x 和 y 值。
如何将这些点输入到样条对象中并将其呈现在屏幕上?
-谢谢
更新让我改写我的问题更具体一点..
我的控制点由 xPts
和 yPts 表示。
现在我想获得沿着样条曲线的点,如何使用这两个 vector 来实现? CatmullRomSpline 的构造函数采用一个 Vector2
,而不是两个 float[]
的
最佳答案
你做了什么。填写点:
curve = new CatmullRomSpline<Vector2>(points,false);
获取曲线上的一个点:
Vector2 point = new Vector2();
curve.valueAt(point, 0.5f);
valueAt()参数说明:
1(点)你要找的点存储在Vector2对象中。
获取并渲染 100 个点可以是这样的:
Vector2 point = new Vector2();
for (int i = 0; i <= 100; i++) {
curve.valueAt(point, i * 0.01f);
// draw using point.x and point.y
}
对您编辑的问题的回答:
for(int i = 0 ; i < 10; i++){
points[i].x = rn.nextFloat()*SampleGame.WIDTH;
points[i].y = SampleGame.HEIGHT*i/10;
}
curve = new CatmullRomSpline<Vector2>(points,false);
关于java - Catmull Rom Spline 实现 (LibGDX),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32161619/
我正在尝试实现如下所示的一些功能 为此,我正在尝试使用 Cubic interpolation 和 Catmull interpolation(分别检查两者以比较最佳结果),我不明白的是这些插值的影响
我有以下代码来计算四个控制点之间的点以生成 catmull-rom 曲线: CGPoint interpolatedPosition(CGPoint p0, CGPoint p1, CGPoint p
我读过一些介绍使用 GL_LINEAR 进行快速三阶插值的文章。 [1] http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter20.ht
在创建我的 Catmull Rom Spline 之后,例如: vector3 SplineVector = newSpline.createCatmulRomSpline(vectorOne, ve
注意:描述比预期的要长一些。您知道使用此网格实现此算法的可读吗?请让我知道! 我正在尝试实现 Catmull-Clark subdivision使用 Matlab,因为稍后必须将结果与已经在 Matl
如果我有一个 Catmull-Rom spline一定长度如何计算它在一定距离处的位置?通常要计算 catmull rom 样条曲线中的点,您输入一个介于 0 和 1 之间的值以通过比例获得其位置,我
我正在尝试创建一个类,它接受任意数量的点(位置和控制)并根据给定的信息创建一个 catmull-rom 样条。 我正在做的——我真的不确定这是否是正确的做法——将每个单独的点存储在一个类中,如下所示:
来自 this site ,里面好像有关于Catmull-Rom样条的最详细的信息,看来创建样条需要四个点。但是,它没有提到点 p0 和 p3 如何影响 p1 和 p2 之间的值。 我的另一个问题是如
我正在尝试使用 SVG 路径创建高性能、美观的铅笔工具。 我正在记录鼠标坐标以绘制路径。为了获得高保真路径(精确到用户的运动),我需要为每个像素运动记录一个点。 保持路径中的每一个点都会产生大量的点,
我对它们之间的关系有点困惑。在我的课上,我的教授询问如何使用自动计算的切线将 C1 连续分段 Hermite 曲线拟合到 x 个点。有人可以解释这是如何工作的吗? 最佳答案 埃尔米特样条是 的一种方法
我到达了这个 [Catmull-Rom Spline][1],我需要更改代码以使用相同的平滑曲线闭合循环。如果我将前两个数字(x0,x1)添加到名为“points”的数组的末尾,循环将关闭,但我没有得
我正在尝试从 Unity 中的点列表生成 Catmull-Rom 曲线。因为我不想在曲线的点之间存储点,所以我选择使用可以根据时间计算 Catmull-Rom 曲线中位置的解决方案。这有几个例子,he
我想在我的屏幕上生成一个随机样条。这是我目前所拥有的: public class CurvedPath { Random rn; CatmullRomSpline curve; float[] xPt
我正在尝试找到一种在 android 平台上实现 catmull-rom 样条曲线的方法,目的是通过 n 个点平滑地绘制一条线。理想情况下,我将能够通过 Path 及其cubicTo 方法来适应三次贝
简要背景:我正在开发一个基于网络的绘图应用程序,需要绘制通过其控制点的 1px 粗样条线。 我遇到的问题是我需要像使用 1px 铅笔工具一样绘制 p1 和 p2 之间的每个像素。因此,一次没有抗锯齿和
我正在尝试使用 C++ 和 OpenCV 实现用于图像缩放的样条 Catmull-Rom。我进行了两个测试,第一个是图像缩放 (X2),第二个是图像重建(缩放图像抽取)。我的问题是,当我显示像素值时,
我是一名优秀的程序员,十分优秀!