Tag: 3d

C#XNA鼠标位置投影到3D平面

我正在研究一个3D XNA项目,我一直在考虑这个问题2周。 所以我决定问你。 基本上我有一个平面平面,我想将鼠标位置投射到那个平面,但是怎么样? 我尝试了很多方法,计算角度……但我发现,距离必须影响X位置,也许需要一些我以前从未听过的数学。 谢谢你的时间。

使用SlimDX时剪辑和3D投影不正确

我正在开发一个简单的项目,我希望使用SlimDX在WinForms应用程序中显示一个3D对象。 我已经创建了一个小项目,但我遇到的问题是我渲染的对象被剪切在0.0f和-1.0f之间。 我看了一个朋友的类似项目的代码(他们没有这个问题),并且无法弄清楚它为什么会发生。 我必须将对象的大小限制在-0.1f – > 0.1f的范围内,以便我能够看到它。 延伸我的远程飞机什么也没做。 我朋友正在使用的项目可以加载超过我的500倍的对象,没有剪切问题。 有没有人有什么建议? (请参阅下面的屏幕截图和代码) 表格代码 namespace TestOfTheTest { using System.Drawing; using System.Windows.Forms; using SlimDX; using SlimDX.Direct3D9; using MathHelper = Microsoft.Xna.Framework.MathHelper; public struct VertexPositionColor { private static VertexDeclaration sDeclaration; public static VertexElement[] Elements = { new VertexElement(0, 0, DeclarationType.Float3, DeclarationMethod.Default, DeclarationUsage.Position, 0), new VertexElement(0, sizeof(float) * 3, DeclarationType.Float4, DeclarationMethod.Default, […]

WP7 XNA显示3D FBX模型

我只是打招呼,对于我这个愚蠢的问题感到抱歉。 我的模型看起来像这样: http : //img265.imageshack.us/img265/8291/clipboard01ap.jpg 但结果是XNA看起来像这样: http : //www.youtube.com/watch?v = XHxHKZnjgnM 我希望你能看到奇怪的透明度…… 问题与“EnableDefaultLighting()”有关吗? 感谢帮助

WPF和3D如何更改3D空间中的单个位置点?

我在WPF中定义了一个非常简单的3D空间,它定义了一个3D矩形,我希望能够操作MeshGeometry3D上的每个Point3D对象(在“Positions”中)属性,但我遇到了麻烦。 .. 这是我的XAML: 其中test1只是一个包裹在可视刷中的图像。 这是我的c#: private void canvas_ContactDown(object sender, ContactEventArgs e) { //Point contactPosition = e.GetPosition(this); //var rayMeshResult = (RayMeshGeometry3DHitTestResult)VisualTreeHelper.HitTest(ViewPort, e.GetPosition(ViewPort)); translatedX -= 0.25; translatedY -= 0.25; model1.Transform = new TranslateTransform3D(translatedX, translatedY, 0.0); //model1.Transform.Transform(new Point3D(translatedX, translatedY, 0.0)); Console.WriteLine(“Changed”); //Apply Z index changes here… var geometry3D = model1.Geometry as MeshGeometry3D; Point3DCollection positions = geometry3D.Positions; foreach (var […]

3D转换WPF

我在3D WPF中绘制两个球体,其中包含Point3D(0,0,0)和Point3D(-1.0,1.0,2.0)等点,半径为0.10 现在我想绘制一个连接这些球体的圆柱体,我唯一拥有的是半径0.02。 我想知道如何计算这个圆柱体的3d点,高度,方向等。 我尝试通过找到中点btw球体点,它将圆柱体放置在这两个球体的中间但不是正确的方向。 我想以正确的角度旋转圆柱体。 我使用Vector3D.angleBetween(v1,v2)找到它给我“NaN”的角度。 我把我正在使用的代码放在下面。 Vector3D v1 = new Vector3D(0, 0, 0); Vector3D v2 = new Vector3D(1.0, -1.0, 2.0); Vector3D center = v1+ v2/2; Vector3D axis = Vector3D.CrossProduct(v1, v2); double angle = Vector3D.AngleBetween(v1, v2); AxisAngleRotation3D axisAngle = new AxisAngleRotation3D(axis, angle); RotateTransform3D myRotateTransform = new RotateTransform3D(axisAngle, center); center.X = myRotateTransform.CenterX; center.Y = myRotateTransform.CenterY; […]

如何在XNA中的3D地形上绘制圆圈?

所以我一直在网上寻找这个问题的答案,但我似乎错过了一些东西。 我有一个小项目在XNA 4.0中动态创建3D地形,但我希望能够在地形上绘制一个圆(或任何其他形状,但让我们先用圆圈)。 现在我已经阅读了一些关于“投射纹理”的内容,但我承认,当涉及着色器语言时,我完全失去了。 我的想法是,我可以(动态地)创建一个基本形状,比如一个直径为2’单位的圆,然后在地形上绘制它作为光标所在的指示器。 (我能够在3D地形上获得光标位置。) 有谁知道如何做到这一点,是否需要使用着色器? 对此事的任何帮助都是相关的! 提前致谢!

Helix工具包旋转3D模型

我是WPF的新手,我正在尝试创建一个显示3D模型的程序(保存在我的计算机上)并根据按钮点击进行旋转。 我想有三个按钮来围绕x,y和z轴旋转对象。 我有代码显示模型,但我不确定如何使用按钮点击旋转它。 这是我到目前为止所拥有的; C# public MainWindow() { InitializeComponent(); ModelVisual3D device3D = new ModelVisual3D(); device3D.Content = Display3d(MODEL_PATH); // Add to view port viewPort3d.Children.Add(device3D); } private Model3D Display3d(string model) { Model3D device = null; try { //Adding a gesture here viewPort3d.RotateGesture = new MouseGesture(MouseAction.LeftClick); //Import 3D model file ModelImporter import = new ModelImporter(); //Load the 3D […]

WPF故事板动画不起作用

我有我的自定义3D模型类(Model),它包含Visual3D元素和Storyboard (sb)来保存与该模型相关的动画。 我正在尝试使用Storyboard旋转Visual3D元素,但遗憾的是它无法正常工作。 这是代码片段 public void AnimationRotate(Model model, double duration, double startTime, RepeatBehavior behaviour) { //Rotate transform 3D RotateTransform3D rotateTransform = new RotateTransform3D(); //assign transform to the model model.Visual3D.Transform = Transform3DHelper.CombineTransform(model.Visual3D.Transform, rotateTransform); //define the rotation axis AxisAngleRotation3D rotateAxis = new AxisAngleRotation3D(new Vector3D(0, 0, 1), 180); //create 3D rotation animation Rotation3DAnimation rotateAnimation = new Rotation3DAnimation(rotateAxis, TimeSpan.FromSeconds(0.5)); […]

C#3d模型查看器

在C#中使用哪些可以查看3D模型的最佳方法是什么? 我也需要改变模型的纹理。 我看了XNA,但我找不到下载链接。

获取由3d多边形包围的点

我有一个位于3D平面上的多边形。 我希望得到这个多边形所包含的所有点。任何人都可以帮助我吗? 我可以通过平面替换扫描线来制作3D扫描线算法,并获得与我的多边形的平面交叉,但我想要更快的解决方案。 提前致谢。