java - 使用 libgdx 绘制曲线

标签 java libgdx

我正在使用 libgdx 尝试使用此 doc 绘制一些曲线.

但是当我渲染时,它只是一条直线,你知道为什么它不弯曲吗?

我假设 myCatmull.valueAt 应该填充曲线上的正确点。

public class IABezier {

    Vector2[] points = new Vector2[100];

    public IABezier() {

        Vector2[] dataSet = new Vector2[2];
        dataSet[0] = new Vector2(10.0f, 10.0f);
        dataSet[1] = new Vector2(20.0f, 20.0f);

        CatmullRomSpline < Vector2 > myCatmull = new CatmullRomSpline < Vector2 > (dataSet, true);
        for (int i = 0; i < 100; ++i) {

            points[i] = new Vector2();
            myCatmull.valueAt(points[i], ((float) i) / ((float) 100 - 1));
        }
    }

    public void draw(ShapeRenderer sRenderer) {

        sRenderer.begin(ShapeType.Line);
        sRenderer.identity();
        for (int i = 0; i < 100 - 1; ++i) {

            sRenderer.line(points[i], points[i + 1]);
        }
        sRenderer.end();
    }
}

渲染..

screenshot

最佳答案

一个catmullrom spline需要至少四个 sample 。因此,您必须添加更多样本才能查看实际曲线。

    Vector2[] dataSet = new Vector2[6];
    dataSet[0] = new Vector2(10.0f, 10.0f);
    dataSet[1] = new Vector2(20.0f, 20.0f);
    dataSet[2] = new Vector2(20.0f, 10.0f);
    dataSet[3] = new Vector2(10.0f, 20.0f);
    dataSet[4] = new Vector2(15.0f, 15.0f);
    dataSet[5] = new Vector2(25.0f, 25.0f);

Here's an example which you can copy, paste and run .

关于java - 使用 libgdx 绘制曲线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32828985/

相关文章:

java - Java 中的嵌套 while 循环

java - 在 libGDX 中移动对象的最佳方法是什么

java - 二元运算符 << 是什么意思?

java - 如何使用随机对象将随机生成的字母打印到二维数组中

java - GUI ImageIcon 一副牌

java - 在 Libgdx TextField 中输入键处理

LibGDX And​​roid 游戏 - 在滚动屏幕上显示固定文本(即分数)

java - 启动 swing 应用程序的最佳实践

java - 如何在 LibGdx 中扩展自顶向下游戏的背景?

android - 是否可以使用 JSON 在 LibGDX 的 TextButtonStyle 中使用两种字体?