使用C#三维图形控件进行曲线曲面分析

使用AnyCAD.Net三维图图形控件能够计算曲线的切线、法线、曲率、长度等,能够计算曲面的uv切线、法线、面积等。

代码示例一:曲线分析

            Platform.LineStyle lineStyle = new Platform.LineStyle();
lineStyle.SetLineWidth(0.5f);
lineStyle.SetColor(ColorValue.BLUE);
Platform.LineStyle lineStyle2 = new Platform.LineStyle();
lineStyle2.SetLineWidth(0.5f);
lineStyle2.SetColor(ColorValue.GREEN); Platform.TopoShape arc = renderView.ShapeMaker.MakeEllipseArc(Vector3.ZERO, , , , , Vector3.UNIT_Z);
renderView.ShowGeometry(arc, ); {
Platform.GeomeCurve curve = new Platform.GeomeCurve();
curve.Initialize(arc); float paramStart = curve.FirstParameter();
float paramEnd = curve.LastParameter(); float step = (paramEnd - paramStart) * 0.1f; for (float uu = paramStart; uu <= paramEnd; uu += step)
{
Vector3 dir = curve.DN(uu, );
Vector3 pos = curve.Value(uu); // 切线
{
Platform.TopoShape line = renderView.ShapeMaker.MakeLine(pos, pos + dir);
Platform.SceneNode node = renderView.ShowGeometry(line, );
node.SetLineStyle(lineStyle);
}
// 法线
{
Vector3 dirN = dir.CrossProduct(Vector3.UNIT_Z);
Platform.TopoShape line = renderView.ShapeMaker.MakeLine(pos, pos + dirN);
Platform.SceneNode node = renderView.ShowGeometry(line, );
node.SetLineStyle(lineStyle2);
} } }

运行结果:

使用C#三维图形控件进行曲线曲面分析

代码示例二:曲面分析

            Platform.LineStyle lineStyle = new Platform.LineStyle();
lineStyle.SetLineWidth(0.5f);
lineStyle.SetColor(ColorValue.RED); TopoShape arc = renderView.ShapeMaker.MakeArc(Vector3.ZERO, , -, , Vector3.UNIT_X);
TopoShape face = renderView.ShapeMaker.Extrude(arc, , Vector3.UNIT_X); renderView.ShowGeometry(face, ); GeomeSurface surface = new GeomeSurface();
surface.Initialize(face);
float ufirst = surface.FirstUParameter();
float uLarst = surface.LastUParameter();
float vfirst = surface.FirstVParameter();
float vLast = surface.LastVParameter(); float ustep = (uLarst - ufirst) * 0.1f;
float vstep = (vLast - vfirst) * 0.1f;
for(float ii=ufirst; ii<=uLarst; ii+= ustep)
for (float jj = vfirst; jj <= vLast; jj += vstep)
{
Vector3List data = surface.D1(ii, jj); Vector3 pos = data.Get();
Vector3 dirU = data.Get();
Vector3 dirV = data.Get();
Vector3 dir = dirV.CrossProduct(dirU);
{
Platform.TopoShape line = renderView.ShapeMaker.MakeLine(pos, pos + dir);
Platform.SceneNode node = renderView.ShowGeometry(line, ); node.SetLineStyle(lineStyle);
}
}

运行结果

使用C#三维图形控件进行曲线曲面分析

上一篇:python连接字符串的方式


下一篇:C#委托及事件处理机制浅析