我遇到了一个问题,对我来说似乎是个bug。我正在制作一个可视化晶体中原子的应用程序。问题是它绘制了一个透明的对象并隐藏了后面的对象。
当我将材料更改为例如EmissiveMaterial时,没有“切割”原子。 我搜索了this post,但给出的建议不适用于这种情况。
这是应用于3D的2D画笔的错误吗?
完整的源代码可以在此处找到http://alloysvisualisation.codeplex.com dll和测试文件http://alloysvisualisation.codeplex.com/releases beta链接。
重现步骤:
这里是代码:
foreach (var atom in filteredAtoms)
{
var color = new Color();
color.ScR = (float)atom.AluminiumProbability;
//color.G = 50;
color.ScB = (float)atom.MagnesiumProbability;
//setting alpha channel but Opacity doens't work as well
color.ScA = (float)(1.0 - atom.VacancyProbability); //(float)1.0;//
DiffuseMaterial material = new DiffuseMaterial(new SolidColorBrush(color));
//material.Brush.Opacity = 1.0 - atom.VacancyProbability;
// make visuals and add them to
atomBuldier.Add(new Point3D(atom.X * Atom.ToAngstrom, atom.Y * Atom.ToAngstrom, atom.Z * Atom.ToAngstrom), material);
}
当我将材料更改为例如EmissiveMaterial时,没有“切割”原子。 我搜索了this post,但给出的建议不适用于这种情况。
这是应用于3D的2D画笔的错误吗?
完整的源代码可以在此处找到http://alloysvisualisation.codeplex.com dll和测试文件http://alloysvisualisation.codeplex.com/releases beta链接。
重现步骤:
- 启动应用程序
- 点击打开文件按钮
- 打开测试文件(xyzT2000.chmc)
- 点击掩膜按钮
- 检查11(一系列原子几乎透明)
- 单击重新绘制