【发布时间】:2018-02-11 21:19:48
【问题描述】:
我正在寻找以厘米为单位的实际距离建模。因此,以下包含一个简单矩形的 SubScene 的宽度和高度与我的模型距离(以厘米为单位)相关联。代码可以正确呈现某些矩形大小(100 厘米),但不能正确呈现其他大小(200 厘米)。当我说它有效时,我看到的红色矩形是窗格大小的 1/3……那是视野。当它不起作用时,窗格是空白的。奇怪的是,我安排了缩放比例,因此所有比例都是通过从 size_cm 参数定位相机和 fieldOfView 角度来固定的。所以我很困惑为什么改变这个绝对比例很重要。我在这里使用 Kotlin,但我希望直接使用 Java 也是如此。我很感激任何想法。
class Scale3D : View("My View") {
val size_cm = 100.0 //works, 200.0 //fails
val cameraFOV_pix = 600.0
val cameraFOV_cm = 3.0 * size_cm
val cameraZOffset_cm = 1.0 * size_cm
val testBox = Rectangle(size_cm, size_cm).apply{
fill= Color.RED
translateX = -size_cm / 2.0
translateY = -size_cm / 2.0
}
val vCamera = PerspectiveCamera(true).apply{
translateZ = -cameraZOffset_cm
fieldOfView = 2.0*Math.toDegrees(Math.atan2(cameraFOV_cm/2.0, cameraZOffset_cm))
println("angle=%.1f deg".format(fieldOfView))
}
override val root = anchorpane {
val rootVx = Group(vCamera,testBox)
val subScene = SubScene(rootVx, cameraFOV_pix, cameraFOV_pix,true, SceneAntialiasing.BALANCED).apply {
fill = Color.ALICEBLUE
camera = vCamera
}
children.addAll(subScene)
}
}
【问题讨论】:
标签: javafx-3d