【发布时间】:2015-12-22 00:38:37
【问题描述】:
我想在 SketchUp 中绘制无限长的轴。我已经画了固定长度的线,但我希望它无限长。
【问题讨论】:
-
您可以在屏幕移动时重绘线条,也可以让线条居中
-
尝试将'INFINITY'作为math.h的宽度或高度
-
没有成功。不过好主意:)
标签: ios objective-c swift scenekit
我想在 SketchUp 中绘制无限长的轴。我已经画了固定长度的线,但我希望它无限长。
【问题讨论】:
标签: ios objective-c swift scenekit
用固定长度的线来伪造它,这些线从相机的视野(称为平截头体)延伸,穿过它,然后再次超出它。
您可以为每个轴创建开始和结束SCNNode 实例。然后每次相机改变视图时,调用
func isNodeInsideFrustum(_ node: SCNNode,
withPointOfView pointOfView: SCNNode) -> Bool
在您的 6 个端点中的每一个上。如果端点在截锥体内,则将其移到更远的位置,直到不在为止。
SCNSceneRendererDelegate 协议中的方法可能对您有所帮助。
【讨论】:
根据您的意思的上下文,您检查线条的大小何时将穿过屏幕中的某个 x 或 y 轴。您可以使用 size.frame 检测屏幕的大小。或者,您可以使用 CGRectGetMidX、CGRectGetMidY 等。
例如,我会这样做:
var x = CGRectGetMaxX(self.frame)
//Where y is the max size of the line you have
if x <= y {
//Code where you make the line shape extend or add another line over it to make it look continous
}
【讨论】: