如何让曲线实体在曲面实体的两侧都可见?
How can I get curve entities to be visible on both sides of a surface entity?
我对视力还很陌生,所以如果我遗漏了一些明显的东西,请告诉我。
我有一个与平面相交的混合曲面,试图在我的曲面上获得“网格”线。问题是曲线只显示在表面的内侧,我希望它们在两侧都可见。
我的方法是否有可行的调整,或者是否有更好的方法来实现我想要的?
下面的通用代码示例。
// Define lists to hold curves and points
List<devDept.Eyeshot.Entities.ICurve> curveList = new List<devDept.Eyeshot.Entities.ICurve>();
List<devDept.Geometry.Point3D> points = new List<devDept.Geometry.Point3D>();
// Add points to a new curve
points.Add(new devDept.Geometry.Point3D(0, 0, -1));
points.Add(new devDept.Geometry.Point3D(0, 1, 1));
curveList.Add(devDept.Eyeshot.Entities.Curve.GlobalInterpolation(points, 3));
// Add points to a second new curve
points.Clear();
points.Add(new devDept.Geometry.Point3D(1, 0, -1));
points.Add(new devDept.Geometry.Point3D(1, 1, 1));
curveList.Add(devDept.Eyeshot.Entities.Curve.GlobalInterpolation(points, 3));
// Create the surface
devDept.Eyeshot.Entities.Surface loft1 = devDept.Eyeshot.Entities.Surface.Loft(curveList, 3)[0];
// Generate a list of entities to render
devDept.Eyeshot.EntityList entities = new devDept.Eyeshot.EntityList();
entities.Add(loft1, Color.PeachPuff);
// Intersect the surface with a horizontal plane at z == 0
List<ICurve> sectionLine1 = loft1.IntersectWith(new Plane(new devDept.Geometry.Point3D(0, 0, 0), new Vector3D(0, 0, 1)), 1e-1).ToList();
entities.Add((Entity)sectionLine1[index], Color.Black);
// Show in the Eyeshot model
modelVisualiser.Clear();
modelVisualiser.Entities.AddRange(preview);
modelVisualiser.Invalidate();
我对视力还很陌生,所以如果我遗漏了一些明显的东西,请告诉我。
我有一个与平面相交的混合曲面,试图在我的曲面上获得“网格”线。问题是曲线只显示在表面的内侧,我希望它们在两侧都可见。
我的方法是否有可行的调整,或者是否有更好的方法来实现我想要的?
下面的通用代码示例。
// Define lists to hold curves and points
List<devDept.Eyeshot.Entities.ICurve> curveList = new List<devDept.Eyeshot.Entities.ICurve>();
List<devDept.Geometry.Point3D> points = new List<devDept.Geometry.Point3D>();
// Add points to a new curve
points.Add(new devDept.Geometry.Point3D(0, 0, -1));
points.Add(new devDept.Geometry.Point3D(0, 1, 1));
curveList.Add(devDept.Eyeshot.Entities.Curve.GlobalInterpolation(points, 3));
// Add points to a second new curve
points.Clear();
points.Add(new devDept.Geometry.Point3D(1, 0, -1));
points.Add(new devDept.Geometry.Point3D(1, 1, 1));
curveList.Add(devDept.Eyeshot.Entities.Curve.GlobalInterpolation(points, 3));
// Create the surface
devDept.Eyeshot.Entities.Surface loft1 = devDept.Eyeshot.Entities.Surface.Loft(curveList, 3)[0];
// Generate a list of entities to render
devDept.Eyeshot.EntityList entities = new devDept.Eyeshot.EntityList();
entities.Add(loft1, Color.PeachPuff);
// Intersect the surface with a horizontal plane at z == 0
List<ICurve> sectionLine1 = loft1.IntersectWith(new Plane(new devDept.Geometry.Point3D(0, 0, 0), new Vector3D(0, 0, 1)), 1e-1).ToList();
entities.Add((Entity)sectionLine1[index], Color.Black);
// Show in the Eyeshot model
modelVisualiser.Clear();
modelVisualiser.Entities.AddRange(preview);
modelVisualiser.Invalidate();