将SCNPlane尺寸调整为特定的屏幕尺寸

时间:2020-01-15 08:21:34

标签: ios swift core-graphics scenekit scncamera

在我的应用程序中,用户使用Core Graphics在屏幕上绘制2D矩形。他们释放鼠标后,我需要创建一个SCNPlane并将其以相同的屏幕尺寸和位置放置到我的SceneKit场景中。我计划将平面的z位置设置为远离相机恒定的值(假设距离相机10个单位)。

我遇到的问题是如何定位和缩放平面,使其看起来就像他们在Core Graphics中绘制的一样。顺便说一句,Core Graphics视图以相同的大小位于SceneKit视图的顶部。

我计划使用广告牌约束,以使飞机正确面向相机。

我确定要使用相机的属性来完成此操作,但是我不知道该怎么做。

1 个答案:

答案 0 :(得分:0)

最好的选择是制作一个与屏幕对齐的容器,并对其原点和比例进行设置,以使您能够进行像素对齐并选择零零位置。

您的构建基块是sceneView.unprojectPoint和sceneView.frame

set.seed(0)
x<-matrix(rnorm(10),1)
dm<-diag(length(x))

# compute  rank from order and backwards:
rank(x)  == col(x)%*%dm[order(x),]
order(x) == col(x)%*%dm[rank(x),]


# in special cases like this
x<-cumsum(rep(c(2,0),times=5))+rep(c(0,-1),times=5)
# they are equal
order(x)==rank(x)

result: 10-pixel blocks at each corner of the view