verb-nurbs
Version:
A library for creating and manipulating NURBS surfaces and curves in many languages
55 lines (41 loc) • 1.72 kB
HTML
<html>
<head>
<title>Curve-Curve Intersection</title>
<script src="js/verb.min.js"></script>
<script src="js/three.min.js"></script>
<script src="js/verbToThreeConversion.js"></script>
<script src="js/OrbitControls.js"></script>
<script src="js/codemirror.js"></script>
<script src="js/javascript.js"></script>
<script src="js/threeBasic.js"></script>
<link href='https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,300' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="css/codemirror.css">
<link rel="stylesheet" href="css/example.css">
<link rel="stylesheet" href="css/colorforth.css">
</head>
<body>
<div id="button">Show/Hide Code</div>
<div id="viewer" class="col">
<div id="title"></div>
</div>
<div id="code-container" class="col scroll-y"></div>
</body>
<script id="script">
setupScene();
var p1 = [-5,0,0], p2 = [10,0,0], p3 = [10,10,0], p4 = [0,10,0], p5 = [5, 5, 0];
var pts = [p1, p2, p3, p4, p5];
var interpCurve = verb.geom.NurbsCurve.byPoints( pts, 3 );
var p1a = [-5,0,0], p2a = [5,-1,0], p3a = [15,5,0], p4a = [3,10,0], p5a = [5, 12, 0];
var ptsa = [p1a, p2a, p3a, p4a, p5a];
var interpCurve2 = verb.geom.NurbsCurve.byPoints( ptsa, 3 );
addCurveToScene( interpCurve.toThreeGeometry() );
addCurveToScene( interpCurve2.toThreeGeometry() );
var runs = 50;
var res = benchmark( function(){ return verb.geom.Intersect.curves( interpCurve, interpCurve2, 1e-5 ); }, runs );
addPointsToScene( res.result.map(function(x){ return x.point0; } ) );
console.log( runs, " runs completed in ", res.each, " ms each");
renderScene();
</script>
<script src="js/example.js"></script>
</html>