【问题标题】:Draw line between two points (x1,y1,z1) to (x2,y2,z2)在两点 (x1,y1,z1) 到 (x2,y2,z2) 之间画线
【发布时间】:2015-12-08 07:17:02
【问题描述】:

我知道如何在二维表面上画线。但我找不到在空间中画线的方法。

我写了一个演示

现在我想在空间中画线。

然后像这样完成它:

我已经使用 CATransform3D 完成了空间中的 2d 曲面旋转。但我不知道如何在空间中画线。

非常感谢。

【问题讨论】:

  • 你使用 UIBezierPath 和 drawRect()
  • @Arbitur 但是路径没有z轴
  • 真的需要吗?

标签: ios swift core-animation cgcontext catransform3d


【解决方案1】:

iOS 上的正常绘图是 2D。 Core Animation 是“2.5D”,它可以绘制带有假 3D 透视图的平面图像。它不会让你“在空间中画画”。

如果您想要真正的 3D 透视图,您应该使用 OpenGL、SceneKit、Metal 或其他一些 3D API。

【讨论】:

    【解决方案2】:

    您尝试在 2d 表面上绘制 3d 图像。因此,您需要某种映射

    https://en.m.wikipedia.org/wiki/3D_projection

    为您提供一些选择。不过,正交投影可能是您想要的

    https://upload.wikimedia.org/math/8/3/a/83a402b37056afa1dd4c8d706a9a2d75.png

    是您想要使用的方程式吗,其中 s 是比例因子,c 是偏移量

    【讨论】:

    • 感谢您的快速回复。我已经使用 CATransform3D 完成了空间中的 2d 表面旋转。但我不知道如何在空间中画线。你介意告诉我如何完成吗?
    猜你喜欢
    • 2020-11-17
    • 1970-01-01
    • 2017-11-18
    • 2016-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多