Title: Curved lines
Curved lines using Bezier3D from here and BasicView – revision 652
- /**
- * v0.1 code by dehash.com 2008
- * Released as open source under the BSD License
- * http://www.opensource.org/licenses/bsd-license.php
- */
- package com.dehash.pv3d.examples.custom
- {
- import org.papervision3d.core.geom.renderables.Vertex3D;
- import org.papervision3d.materials.special.LineMaterial;
- import org.papervision3d.view.BasicView;
- import org.papervision3d.core.geom.Lines3D;
- import flash.events.Event;
- // from http://www.nabble.com/Howto-sample-a-curve--td17412324.html
- import com.topflashers.ext.pv3d.core.geom.renderables.Bezier3D;
- [SWF(width="800", height="600", backgroundColor="0x000000")]
- public class CurvedLinesDemo extends BasicView
- {
- private var lines3D:Lines3D;
- public function CurvedLinesDemo(viewportWidth:Number = 800, viewportHeight:Number = 600,
- scaleToStage:Boolean=true, interactive:Boolean=false, cameraType:String="CAMERA3D")
- {
- super(viewportWidth, viewportHeight, scaleToStage, interactive, cameraType);
- lines3D = new Lines3D(randLineMaterial());
- var v1:Vertex3D = new Vertex3D(0,0,0);
- for(var i:uint = 1; i < 20; i++){
- var bezier3D:Bezier3D = new Bezier3D(lines3D, randLineMaterial() , 2, 20, v1, randVertex(), randVertex());
- }
- scene.addChild(lines3D);
- renderer.renderScene(scene, camera, viewport);
- this.startRendering();
- }
- protected override function onRenderTick(event:Event = null):void {
- lines3D.yaw((mouseY-(stage.stageHeight/2))/(stage.height/2)*5);
- lines3D.roll((mouseX-(stage.stageWidth/2))/(stage.width/2)*-5);
- renderer.renderScene(scene, camera, viewport)
- }
- private function randVertex():Vertex3D {
- return new Vertex3D(randNum(),randNum(),randNum());
- }
- private function randLineMaterial():LineMaterial {
- return new LineMaterial(randColor());
- }
- private function randColor():Number {
- return Math.floor((Math.random() * 0xFFFFFF));
- }
- private function randNum():Number {
- return 800 - (Math.random() * 1600);
- }
- }
- }