gpt4 book ai didi

java - 在 Java 3D 中从 Point3f 数组绘制洛伦兹吸引子

转载 作者:行者123 更新时间:2023-12-01 05:19:56 25 4
gpt4 key购买 nike

我已经计算了需要绘制的点的值,并将它们放入 Point3f 数组中。我有 526 435 积分。下一步是逐个绘制点,使其看起来像一条连续的线,或者使用 LineStripArray 在点之间绘制线。因为我没有找到如何逐点绘制,所以我尝试使用 LineStripArray。

我从 here 获取了代码我使用以下代码更改了方法“createLineTypes”的内容:

    Group lineGroup = new Group();

Appearance app = new Appearance();
ColoringAttributes ca = new ColoringAttributes(black, ColoringAttributes.SHADE_FLAT);
app.setColoringAttributes(ca);

Computing comp = new Computing();

//the following row computes the values of the points I want to draw
//and it works alright; the points are saved into
//**static List<Vector3> computed_values** from class Computing,
// where Vector3 class defines a 3D point actually
comp.do_the_job();

Point3f[] dashPts = new Point3f[Computing.computed_values.size()];
for(int i = 0; i < Computing.computed_values.size(); i++)
{
dashPts[i] = new Point3f((int)Computing.computed_values.get(i).getX(), (int)Computing.computed_values.get(i).getY(), (int)Computing.computed_values.get(i).getZ());

}
System.out.print(Computing.computed_values.size());
int[] a = {Computing.computed_values.size()};
LineStripArray dash = new LineStripArray(Computing.computed_values.size(), LineArray.COORDINATES, a);
dash.setCoordinates(0, dashPts);
LineAttributes dashLa = new LineAttributes();
dashLa.setLineWidth(1.0f);
dashLa.setLinePattern(LineAttributes.PATTERN_SOLID);
Shape3D dashShape = new Shape3D(dash, app);
lineGroup.addChild(dashShape);


return lineGroup;

问题是它只绘制了 1 条垂直线。有什么想法吗?

最佳答案

我找到了一个解决方案,那就是 PointArray。在这里

    Group lineGroup = new Group();

Appearance app = new Appearance();
ColoringAttributes ca = new ColoringAttributes(black, ColoringAttributes.SHADE_FLAT);
app.setColoringAttributes(ca);

Computing comp = new Computing();
comp.do_the_job();

Point3f[] plaPts = new Point3f[Computing.computed_values.size()];
for(int i = 0; i < Computing.computed_values.size(); i++)
{
plaPts[i] = new Point3f((float)Computing.computed_values.get(i).getX(), (float)Computing.computed_values.get(i).getY(), (float)Computing.computed_values.get(i).getZ());
}

PointArray pla = new PointArray(Computing.computed_values.size(), GeometryArray.COORDINATES);
pla.setCoordinates(0, plaPts);
Shape3D plShape = new Shape3D(pla, app);
lineGroup.addChild(plShape);

return lineGroup;

重要提示:对于我的应用程序,我必须将值转换为 float,而不是像我最初那样转换为 int。

关于java - 在 Java 3D 中从 Point3f 数组绘制洛伦兹吸引子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10583443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com