Я пытаюсь преобразовать 3D-позицию вложенного SCNNode в координату x, y (CGPoint) (для наложения вида на объект).
Моя структура SCNNode выглядит так:
+-----------+
| Root node |
+-----+-----+
|
|
+----+---+
+--+ Node A +--+
| +--------+ |
| |
| |
| |
+---+----+ +----+---+
| Node B | | Node C |
+--------+ +--------+
Я хотел бы получить 2d-позицию NodeB на экране. Мне известно о convertPosition: и projectPoint: методы, но я не думаю, что использую их правильно.
Любые указатели?
Редактировать:
В настоящее время пытается что-то вроде этого:
SCNVector3 rootPosition = [[[[self view3D] scene] rootNode] convertPosition:[nodeB position] fromNode:nodeB];
SCNVector3 projectedPoint = [[self view3D] projectPoint:rootPosition];
NSLog(@"x %f y %f z %f", projectedPoint.x, projectedPoint.y, projectedPoint.z);
Результирующие значения x, y, z далеки (а иногда и отрицательны, что не имеет смысла в пространстве экрана, поскольку объект явно виден).