我有一架飛行中的飛機,我正在跟蹤,並且還顯示了飛機的跟蹤路線。我正在繪製圓柱體作爲繪製路徑的線條。它在2點之間繪製一條線。我有一個最初設置爲(0,200,200)的cameraNode。那時我可以看到飛機。但是當我開始我的飛行。它走出屏幕。我想要2件東西:相機沒有在Scenekit中跟隨飛機
- 只跟隨飛機(路徑無所謂)。
- 顯示整個路徑和飛機。
我試圖找到最小廣告最大x,y和z和平均值,但它沒有工作。如果你看到下面的gif它太縮放和飛機已經移出屏幕
這是我如何設置我的相機:
- (void)setUpCamera {
SCNScene *workingScene = [self getWorkingScene];
_cameraNode = [[SCNNode alloc] init];
_cameraNode.camera = [SCNCamera camera];
_cameraNode.camera.zFar = 500;
_cameraNode.position = SCNVector3Make(0, 60, 50);
[workingScene.rootNode addChildNode:_cameraNode];
SCNNode *frontCameraNode = [SCNNode node];
frontCameraNode.position = SCNVector3Make(0, 100, 50);
frontCameraNode.camera = [SCNCamera camera];
frontCameraNode.camera.xFov = 75;
frontCameraNode.camera.zFar = 500;
[_assetActivity addChildNode:frontCameraNode]; //_assetActivity is the aircraft node.
}
下面是我改變相機位置這是不工作:
- (void)showRealTimeFlightPath {
DAL3DPoint *point = [self.aircraftLocation convertCooridnateTo3DPoint];
DAL3DPoint *previousPoint = [self.previousAircraftLocation convertCooridnateTo3DPoint];
self.minCoordinate = [self.minCoordinate findMinPoint:self.minCoordinate currentPoint:point];
self.maxCoordinate = [self.minCoordinate findMaxPoint:self.maxCoordinate currentPoint:point];
DAL3DPoint *averagePoint = [[DAL3DPoint alloc] init];
averagePoint = [averagePoint averageBetweenCoordiantes:self.minCoordinate maxPoint:self.maxCoordinate];
SCNVector3 positions[] = {
SCNVector3Make(point.x,point.y,point.z) ,
SCNVector3Make(previousPoint.x,previousPoint.y,previousPoint.z)
};
SCNScene *workingScene = [self getWorkingScene];
DALLineNode *lineNodeA = [[DALLineNode alloc] init];
[lineNodeA init:workingScene.rootNode v1:positions[0] v2:positions[1] radius:0.1 radSegementCount:6 lineColor:[UIColor greenColor]] ;
[workingScene.rootNode addChildNode:lineNodeA];
self.previousAircraftLocation = [self.aircraftLocation mutableCopy];
self.cameraNode.position = SCNVector3Make(averagePoint.x, averagePoint.y, z);
self.pointOfView = self.cameraNode;
}
歡迎使用快捷或客觀的c代碼。
謝謝!
如果我理解正確,你問如何實現兩個不同的相機行爲?另外,你能澄清你的意思嗎?「跟隨飛機」?相機是否應該與飛機保持最小距離,或者只是更新以觀察其方向? –
@ErikFoss是的,我想要2種行爲:1.跟着飛機(相機將只關注飛機而不是路徑)。 2.顯示整個路徑和飛機在一個屏幕上。相機必須與飛機保持一定的距離。 – Dhara