我有一些代码可以向前或向后移动随机定向的 3D 地震线,类似于一般的交叉点播放器。它在 Petrel 2011 中运行良好,但是一旦我更新到 2012 年它似乎就坏了。问题是当我尝试设置一个新方面时,线的正常方向似乎改变了几个小数。下面是一些示例代码...
SeismicLine3D line = ...;
double distance = ...;
Direction3 direction = ...;
Direction3 normal = ...;
Facet facet = seismicLine3D.Intersection.Facets.ElementAt(0);
Vector3 offset = Vector3.Multiply(distance, direction.NormalizedVector);
Point3 point = Point3.Add(facet.Plane.DefiningPoint, offset);
Plane3 plane = new Plane3(point, normal);
Facet newFacet = new Facet(plane, new Plane3[] {});
IEnumerable<Facet> facets = new Facet[] {newFacet};
using (ITransaction transaction = DataManager.NewTransaction())
{
transaction.Lock(seismicLine3D);
try { seismicLine3D.Intersection.Facets = facets; }
finally { transaction.Commit(); }
}
// BAD!!!
// seismicLine3D.Intersection.Facets.ElementAt(0).Plane.Normal != normal;
有谁知道海燕 2011 年和 2012 年之间可能发生了什么变化导致这种情况?另外,有人知道可能的解决方法吗?
编辑:
在任何切换窗口中查看时,正常方向的变化非常明显。随着线条的移动,您将在可视化中看到轻微的“故障”。