1

正如甲烷图像所描述的那样,我需要在 Java3d 中制作一个四面体,其中任意两个边界之间的角度为 109 度(H 以 C 为边界,因此线条是边界)。
我必须承认,我完全不知道该怎么做。我是这样尝试的:一个与 rotX 和 rotZ 绑定在 0 度。一个 rotX 在 109 度。下一步将是109rotZrotX。假设 rotX 的角度是 AngleX,而 rotZ 的角度是 AngleZ。我的圆柱体的末端将(计算和尝试)在(sin AngleZ,cos AngleZ*cos AngleX, cos AngleZ*sin AngleX). 这是合法的,所以再次旋转显然不会有任何好处。

我有 4 个长度为 2f 的圆柱体,一次创建一个,在 (0,1,0) 处平移,因此它们的末端在 (0,0,0) 处。从这一点开始,我围绕点 (0,0,0) 旋转我的圆柱体,并尝试实现一个四面体。左圆柱在{109,0},右圆柱在{109,109} 很容易看出左圆柱和上圆柱和右圆柱升的角度不一样角度 {0,0}、{109.5,0}、{109.5,109,5} 的边界图像(鼠标旋转以便看得更清楚)

另外我不得不说,通过微积分解决这个问题对我没有太大帮助,因为在某些情况下我可能需要改变角度,但我仍然需要它在圆柱体之间具有相同的角度。

有任何想法吗?我应该如何解决这个问题?

注意:为了简单起见,我在程序中将弧度转换为度数,因此我使用度数。

4

1 回答 1

3

我认为你可能会让这比它需要的更复杂一些。甲烷不是对称的吗?如果是这样,将氢原子放在立方体的不相邻顶点,将碳放在立方体的中心。

要了解我的意思,请在 Google 上搜索“甲烷对称性”并查看图像。

如果您需要一个非对称的变体,我仍然会在您的程序之外计算原子的位置,或者使用非图形代码,并且只使用 java-3d 来放置它们。

于 2012-11-05T15:19:11.593 回答