【问题标题】:Drawing Curves on Surfaces in WebGL在 WebGL 中的曲面上绘制曲线
【发布时间】:2012-06-09 20:16:05
【问题描述】:

好吧,标题几乎说明了这一点。我希望能够在 Web GL 的表面上绘制曲线。例如,我想在球体表面画一条抛物线。

x = cos(theta)sin(phi); y = sin(theta)sin(phi); z = cos(phi)。

如果使theta = theta(t) 和phi = phi(t),则可以在曲面上绘制曲线。

我想形状上的线条是我需要的。有人知道这在 Web GL 中是否可行?

【问题讨论】:

    标签: javascript webgl calculus


    【解决方案1】:

    抛物线是平面上到直线和点(称为焦点)距离相等的点的集合。这里的重点是球体上的“线”是什么意思。请记住,抛物线可以无限延伸,但您不能在球体上这样做,除非您在其上定义一些特定的度量。

    不管怎样,你用 theta 和 phi 对球体进行了参数化。那挺好的。如果要在曲面上定义曲线,则应在 theta 和 phi 之间绑定,例如

    phi = theta ^ 2
    

    会以某种方式绘制可以定义为“抛物线”的东西,即通过参数化给出的球体在平面上的表示的投影。

    【讨论】:

    • 哦,好吧,我应该更具体一些。我所说的“线”是某种形状表面上的闭合曲线。
    • 这几乎是一回事,你必须从表面的参数化开始。参数化为您提供了一种将曲面拆分为小的平面形状的方法,您可以将这些形状放入欧几里得 3D 空间中以重新创建曲面。在所有这些形状中,你应该画出你的线条。至于闭合曲线,它们要么在投影到曲面上的平面区域内闭合,要么必须与相对边界上的坐标相匹配。我从来没有为 WebGL 编写过代码,有一天我会尝试一下,但我现在只能给你一些理论。
    【解决方案2】:

    您是否正在寻求有关如何在 WebGL 中执行此操作的帮助?在这种情况下,看看这个例子

    http://dl.dropbox.com/u/17612367/OpenGL%20to%20WebGL/example%202.3.1%20-%20line%20graph/code/index.html

    您基本上可以将位置加载到向量中,然后使用带有 LINELOOP 的 drawArrays 或其他东西来绘制它...有关参数,请参阅此备忘单或在谷歌上搜索 drawArrays 函数以获取更多信息:

    http://www.nihilogic.dk/labs/webgl_cheat_sheet/WebGL_Cheat_Sheet.pdf

    祝你好运!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-20
      • 1970-01-01
      • 2023-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-21
      • 1970-01-01
      相关资源
      最近更新 更多