c# - 为什么 C# 3D imgae 画笔在以编程方式应用于 3d 模型时不起作用?
问题描述
我有这个非常简单的 C# 方法,它创建一个 MeshGeometry3D 元素并以编程方式将其放置在 Model 3DGroup 中:
public static GeometryModel3D DrawElement(Model3DGroup group,string type, double x, double y)
{
MeshGeometry3D mesh = new MeshGeometry3D();
mesh.Positions.Add(new Point3D(-0.5, -0.5, 0));
mesh.Positions.Add(new Point3D(0.5, -0.5, 0));
mesh.Positions.Add(new Point3D(0.5, 0.5, 0));
mesh.Positions.Add(new Point3D(-0.5, 0.5, 0));
mesh.TriangleIndices.Add(0);
mesh.TriangleIndices.Add(1);
mesh.TriangleIndices.Add(2);
mesh.TriangleIndices.Add(2);
mesh.TriangleIndices.Add(3);
mesh.TriangleIndices.Add(0);
if (type == "highlight")
{
ImageBrush imgBrush = new ImageBrush(new BitmapImage(new Uri(@"E:\2.jpg")));
element = new GeometryModel3D(mesh, new DiffuseMaterial(imgBrush));
}
element.Transform = new Transform3DGroup();
group.Children.Add(element);
return element;
}
问题是,当我使用 eimage 画笔时,对象不会出现,就像它是不可见的一样,但是当我使用这样的实心画笔时,它可以正常工作:
element = new GeometryModel3D(mesh, new DiffuseMaterial(Brushes.Red));
我仔细检查了图像文件 E:\2.jpg 存在。
你能帮帮我吗?
解决方案
推荐阅读
- flutter - 如何将 TextSpan 列表转换为单个文本?
- java - 在java中,在将命名变量添加到arraylist的同一行上创建/构造/定义命名变量的正确语法是什么?
- php - AttributeRepository::create($x) 必须兼容
- apt - 无法在 Ubuntu pyxis 容器中安装 update-notifier-common
- flutter - 错误:指定的语言版本太高。支持的最高语言版本为 2.13
- apache-flink - Flink 1.14 中的延迟监控
- javascript - 如何使用 Angular 组件对表格行使用 CSS :nth-child(odd)?
- reactjs - 如何发布 React.js + Redux 组件
- ansible - 在 Ansible 块内调用包含包含的多个剧本
- google-apps-script - TypeError:创建 GoogleScripts 自动化时无法读取 null 的属性“createAllDayEvent”