簡體   English   中英

朝3D點旋轉對象

[英]Rotate object towards 3D point

我正在嘗試使用OpenGL和glm向3d點旋轉對象。 要找到xRotation,我正在這樣做:

xRotation=atan2(lookAtDiff.x,lookAtDiff.z)

其中xRotation圍繞Y軸,而lookAtDiff是vec3,它是對象位置與我要使其面對的對象之間的差異。 這可以完美地工作。 因此,我決定以相同的方式執行yRotation(繞X軸旋轉):

yRotation=atan2(lookAtDiff.y,lookAtDiff.x)

這給了我錯誤的旋轉。 我的問題是,為什么我會從中得到錯誤的旋轉,並且該如何解決?

您必須使用對角線:

yRotation = atan2(lookAtDiff.y, sqrt(lookAtDiff.x * lookAtDiff.x + lookAtDiff.z * lookAtDiff.z));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM