问题标签 [viewport3d]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 如何实现 WPF 3D 预览的刚体动力学
我目前正面临使用 C# 的 WPF 3D 问题。简单地说,我需要通过仅移动其中两个(一次一个或同时移动两个)来为一些简单的机械部件设置动画。这是描绘这种情况的简单图:
因此,通过垂直移动(平移)P1 或/和 P2 部分,整个事物需要相应地移动。
我想可以通过计算大量角度并应用大量变换来完成,但这不是我的目标。
因此,我想像通过枢轴点将零件连接在一起。
使用 WPF 3D 预览它的首选方法是什么?
c# - 执行 RenderTargetBitmap 后 Viewport3D 不更新视觉效果
使用 RenderTargetBitmap.Render 调用渲染 Viewport3D 似乎会导致 Viewport3D 不再更新其视觉内容。尽管如此,交互操作仍然有效,例如悬停和单击。
我创建了一个示例,其中我有一个包含按钮的视口。然后我使用 RenderTargetBitmap 渲染视口。在此渲染之后,我尝试切换按钮的可见性,但按钮的视觉效果不再更新,这是出乎意料的。然而,当它被折叠时,不可能像您期望的那样单击该按钮。将可见性切换回可见允许我再次单击该按钮,因此似乎只有视觉效果不再正确处理。
似乎视口丢失了它应该使用的正确缓冲区,并且无论如何都继续显示旧版本。我希望视口像在渲染调用之前一样不断更新其视觉效果,有什么我在这里遗漏的想法吗?
我已经在 bitbucket 上上传了演示器,源文件可以在这里查看: Sourcecode
演示器也可用作 VS2010 解决方案: 下载解决方案
如果您需要任何其他信息,请告诉我,我会尽可能详细地回答您的问题。
c# - MediaElement 未显示在自定义 3D 类中
我正在尝试在 Viewport3d 中显示视频流。当我通过 xaml 添加 MediaElement 时,视频播放没有问题;即使我在代码隐藏中将视频添加为 ModelVisual3D,视频也能正常工作。但是,当我将视频抽象为一个类时,视频停止出现。网络和本地视频文件都会发生这种情况。我尝试使用 x86 和 64 位进行编译。有什么办法可以解决这种行为?为什么会这样?
我有以下视口:
视频控制.xaml
VideoControl.xaml.cs
c# - 在 Viewport3D 中丢弃相机的比例变换
我有一个主要Viewport3D
的mCamera
,由 控制TrackballDecorator
。我想要的是创建另一个Viewport3D
只有一个立方体来表示主视口上的当前相机方向。
这段代码:
效果很好,除了我不想OrientationCamera
将缩放应用为主缩放(我希望它只是旋转)。
我可以看到,在使用主相机进行缩放操作时,只有矩阵的值M11
、M22
、M33
会发生变化,但是当我旋转它时它们也会发生变化,并且我尝试应用到这些值的任何更改都会导致我的预览立方体转换为意想不到的方式。
有谁知道如何ScaleTransform
从转换矩阵中丢弃?或者也许还有另一种方法可以做到这一点?
wpf - 使用 ViewPort3D 将 WPF 迁移到手机 8.1
即将开始迁移使用 ViewPort3D 的 WPF 应用程序。我的第一项研究表明,Phone 8.1 不支持此类。我对么?如果是这样,我有哪些迁移选择?
c# - 在后面的代码中使用 RenderTargetBitmap 渲染 Viewport3D 时出现黑色图像
我有一个旋转图像的 viewport3D。我必须在后面的代码中构建它。如果我将视口放在网格中,一切正常。但是,如果我尝试使用 RenderTargetBitmap 渲染它,就会出现一些问题,并且我总是得到一个空图像。
这是我的代码:
我在 InitializeComponent() 之后调用此函数。
c# - C# WPF:Viewport3D 和 WriteableBitmap 的组合导致 Viewport3D 控件闪烁
我有两个 WPF 控件:
(1) 通过使用 HelixViewport3D 的 viewport3D 控件(来自 Helix 3D Toolkit:http ://helixtoolkit.codeplex.com/ )
(2) 使用 WriteableBitmap.WritePixels 写入的 Image 控件
我有一个 Kinect 传感器
- 将骨架数据(通过事件处理程序 SkeletonFrameReady)推送到 HelixViewPort3D 控件
- 将 RGB 相机数据(通过事件处理程序 ColorFrameReady)推送到 WriteableBitmap
问题:
如果我只更新 viewport3D 控件,我会根据此页面获得一个工作(非闪烁)3D 骨架:http: //kuchenzeit.wordpress.com/2012/10/12/tcd-kinect/
但是如果我同时更新 viewport3D 控件和 Image 控件,那么我的 viewport3D 控件就会闪烁
有没有办法可以消除 viewport3D 控件中的闪烁?
wpf - 平面投影中的立方体。安装顶部
我正忙于将 WPF 解决方案迁移到 Windows 应用商店应用程序。该解决方案使用ViewPort3D
您在应用程序开发中没有,因此我尝试使用PlaneProjection
.
目标是实现一个可以用故事板围绕一个轴旋转的立方体。我对立方体的侧面没有任何问题,但顶部的矩形让我头疼。
我制作了一个测试集来可视化我的问题。如果您创建一个新的 blanc Windows 应用商店应用程序(不是电话)并将其命名,PlaneTest
然后将 XAML 粘贴到您的整个应用程序MainPage.xaml
中,并将 C# 类放在MainPage.xaml.cs
.
XAML:
C#
如果您不触摸 3 个顶部滑块,请尝试使用其他滑块将橙色顶部矩形放在立方体顶部。我不能。
当我将 Rotation X most top 滑块移动到 0 或 90 时,我可以拟合顶部,但不能使用任何其他值。我究竟做错了什么?甚至有可能PlaneProjection
吗?我是否遇到了这种仿射变换限制?
http://www.charlespetzold.com/blog/2009/01/Non-Affine-Transforms-in-Silverlight.html
c# - 将具有不同层次结构的两个视图模型绑定到一个模型
我有带有实体的 viewport3d,以及带有实体层次结构的树视图。Treeview 是从类层次结构中绑定的,如下所示:
我想只绑定到所有对象的其他属性的视口,没有层次结构。视口提供来自 ObservableCollection 的绑定,但不包括祖先。因此无法访问较低级别的 OtherProperty。
我考虑了两个独立的视图模型,但我不知道如何设计不同视图模型之间的通信。
我找到了解决方案: http: //blog.quantumbitdesigns.com/2008/07/22/programmatically-selecting-an-item-in-a-treeview/ 但当然这是迂回的方式。我想自动更新视图模型和模型中的更改。
在这种情况下,最好的解决方案是什么?
编辑:这是树视图的 XAML:
这是工作。
问题在于将该层次结构绑定到视口,beacase视口允许以下列方式绑定:
其中 Objects 是 DataContext 的一个属性:
wpf - WPF 3D 纹理交集
我正在使用 Helix 3D Toolkit 在 WPF 应用程序中绘制 3D 对象。目前我正在绘制 3D(矩形)中的 2D 形状,并且在形状相交时遇到纹理问题:
移动相机时交点发生变化:
我尝试将一种形状放置在比另一种高一点的位置(Z = 0.101 和 0.102),但结果是一样的。如果我增加差值(Z = 1 和 2),问题就解决了。但这太高了,因为在形状之上还会有其他 3D 对象,并且形状不应该与它们重叠。
为什么会发生这种情况?我认为即使是很小的高度差异也应该足以清楚地识别应该显示哪个纹理。
我试图谷歌,但我什至不知道如何正确描述这个问题以获得相关结果。