サイズがXMLからインポートされる立方体があるので、モデルのサイズにかかわらず、カメラは常にそのすべてを見ることができるようにする必要があります。これはプレビュー用です。わかりやすくするために、スケールを上に表示するキャプションをレンダリングします。WPF 3D - ModelVisual3Dをカメラの視野に合わせますか?
私は、ModelVisual3DがカメラのFieldOfView
の境界内に入るかどうか、あるいはViewPort3D自体の中に入るかどうかを教えてくれる機能が必要だと思います。
これまでのところ、次元プロパティが変更された場合、静的コールバック(次元プロパティはDependencyProperty
です)があります。現時点ではかなり原油ですが、私が見ているアイデアを得ることができます。コメントアウトセクションでは、誰もがコメントアウトセクションでは、私は永遠に感謝するだろうでどこに行くべきかを知っている場合、私は
private static void OnCubeDimensionsChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
if (!valueSemaphore)
{
//while(mainModel.WillClip(mainCamera))
//{
// mainCamera.FieldOfView--;
//}
valueSemaphore = true;
double propertyValue = 0.0;
Product3D p = d as Product3D;
switch (e.Property.Name)
{
case "CubeHeight":
propertyValue = (double.Parse(e.NewValue.ToString())/100) * 8;
p.CubeHeight = propertyValue;
break;
case "CubeWidth":
propertyValue = (double.Parse(e.NewValue.ToString())/100) * 5.3;
p.CubeWidth = propertyValue;
break;
case "CubeDepth":
propertyValue = (double.Parse(e.NewValue.ToString())/100) * 2.6;
p.CubeDepth = propertyValue;
break;
}
valueSemaphore = false;
}
}
探しているロジックの種類を大まかに示しています。
ありがとうございます。
http://stackoverflow.com/questions/709368/wpf-3d-detirmine-whether-a-modelvisual3d-is-being-clipped-inside-its-viewport3はそれがないとこれは同じです? – ChrisF