ในแอปพลิเคชัน QML ของฉัน ฉันกำลังแสดง Mesh แบบกำหนดเองซึ่งสร้างจากรูปภาพทางการแพทย์ ตอนนี้ฉันต้องการให้กล้องหมุนรอบจุดศูนย์กลางของตาข่ายนี้
ตามคำตอบในคำถามนี้ ฉันต้องตั้งค่า viewCenter
ของกล้องเป็น การแปลของตาข่าย อย่างไรก็ตาม เมชที่ฉันแปลแล้ว (เซนทรอยด์ไม่ได้อยู่ที่ [0, 0, 0]) เนื่องจากอยู่ในระบบพิกัดของเครื่องสแกน CT/MR
ฉันจะรับเซนทรอยด์ของตาข่ายที่นำเข้าเพื่อตั้งค่า viewCenter ได้อย่างไร
ในไฟล์ QML ของฉันฉันมี:
import Qt3D.Core 2.0
import Qt3D.Render 2.0
import Qt3D.Input 2.0
import Qt3D.Extras 2.0
import QtQuick 2.0 as QQ2
Entity {
id: sceneRoot
Camera {
id: camera
projectionType: CameraLens.PerspectiveProjection
fieldOfView: 45
nearPlane : 0.1
farPlane : 1000.0
position: Qt.vector3d(0, 0, 20)
upVector: Qt.vector3d( 0.0, 1.0, 0.0 )
viewCenter: Qt.vector3d( 0.0, 0.0, 0.0 ) // here I should set the viewcenter to the centroid of "organModel"
}
OrbitCameraController { camera: camera }
components: [
RenderSettings {
activeFrameGraph: ForwardRenderer {
camera: camera
clearColor: "transparent"
}
},
InputSettings { }
]
PhongMaterial {
id: material
ambient: "darkRed"
}
Mesh {
id: organModel
source: "qrc:/organModel.obj"
}
Transform {
id: transformLiver
}
Entity {
id: torusEntity
components: [ liver, material, transformLiver ]
}
}