Curvature mapping for curves and surfaces

With the code samples reported in this article, you can display curvature mapping of surfaces and curves with Eyeshot.

 

The following picture shows the curvature mapping of a surface:

Capture1.PNG

 

Please note that there are different types of surface's curvature to display: Kappa1, Kappa2, Mean and Gauss. You can learn more about surface curvatures at this link:

http://en.wikipedia.org/wiki/Curvature

 

The code used to display it, is reported below:

protected override void OnLoad(EventArgs e) 
{ 
    // Loft 
    List<Point3D> array = new List<Point3D>(); 

    array.Add(new Point3D(0, 60, 0)); 
    array.Add(new Point3D(0, 40, -5)); 
    array.Add(new Point3D(0, 20, +15)); 
    array.Add(new Point3D(0, 0, 0)); 

    Curve first = Curve.GlobalInterpolation(array, 3); 

    array.Clear(); 
    array.Add(new Point3D(40, 60, 0)); 
    array.Add(new Point3D(40, 0, 10)); 

    Curve second = Curve.GlobalInterpolation(array, 1); 

    array.Clear(); 
    array.Add(new Point3D(80, 60, 0)); 
    array.Add(new Point3D(80, 30, 20)); 
    array.Add(new Point3D(80, 0, 5)); 

    Curve third = Curve.GlobalInterpolation(array, 2); 

    array.Clear(); 
    array.Add(new Point3D(120, 60, 0)); 
    array.Add(new Point3D(120, 0, 0)); 

    Curve fourth = Curve.GlobalInterpolation(array, 1); 

    array.Clear(); 
    array.Add(new Point3D(160, 60, 0)); 
    array.Add(new Point3D(160, 30, 10)); 
    array.Add(new Point3D(160, 0, 0)); 

Curve fifth = Curve.GlobalInterpolation(array, 2); Surface loft = Surface.Loft(new Curve[] { first, second, third, fourth, fifth }, 3); viewportLayout1.Entities.Add(loft, 0, Color.Aquamarine); viewportLayout1.Legends[0].ColorTable = Legend.RedToBlue9; loft.ComputeCurvatureMap(viewportLayout1, viewportLayout1.Legends[0], curvatureType.Kappa1); loft.ShowCurvature = true; viewportLayout1.Legends[0].Visible = true; }

 

 You can display also curve curvature mapping as shows the picture below:

Capture3.PNG

 

with the following code:

protected override void OnLoad(EventArgs e) 
{ 
    List<Point3D> array = new List<Point3D>(); 

    array.Add(new Point3D(0, 60, 0)); 
    array.Add(new Point3D(0, 40, -5)); 
    array.Add(new Point3D(0, 20, +15)); 
    array.Add(new Point3D(0, 0, 0)); 

    Curve curve = Curve.GlobalInterpolation(array, 3); 

    viewportLayout1.Entities.Add(curve, 0, Color.DarkBlue); 

    curve.ComputeCurvatureGraph(20); 

    curve.ShowCurvature = true; 
}

 

Please note that function ComputeCurvatureGraph() needs a scale factor as input that is necessary to define the length of lines used to represent the curvature.

Have more questions? Submit a request

0 Comments

Please sign in to leave a comment.