Last updated January 22, 2010 10:43, by raindrop
Feedicon  

Class MDSphere.fx:

public function coordinate(radius:Number, angle:IMDVector):IMDVector{
        
    var dim = angle.getDim();

    if(dim == 0){ return MDVector{ dim: 1 elems: [radius] } }

    var alpha = angle.getElem( dim - 1 );

    MDVector{
        dim: dim + 1
        elems: [MDVector.getElems(coordinate(radius * Math.sin(alpha), angle.subVector(dim-1))), radius * Math.cos(alpha)]
    }

}


public class MDSphere extends MDShape{

    public var radius:Number;

    override var fragmentation = 6;

    public override function getSegments(): MDSegment[]{

        var N = fragmentation;

        def PI = Math.PI;

        var delta = 2.0 * PI / (2 * N);
        for(angle in MDSet.set(-PI, PI, N, dim -1)){
            var center = MDPoint.createPoint(coordinate(radius, angle));
            for(p in MDVector.getNeighborhood(delta, angle)){
                MDSegment{
                    color: color
                    point1: center
                    point2: MDPoint.createPoint(coordinate(radius, p))
                }

            }
           
        }
    }
    
}

Main file:

import javafx.stage.*;
import javafx.scene.*;
import javafx.scene.paint.*;

import javafx.scene.transform.*;

import mathematics.multidimensional.shape.*;

var dim = 4;

Stage {
    title: "Hyper Sphere"
    scene: Scene {
        width: 500
        height: 500
        
        content: MDUniversePlayer {
            transforms: Transform.translate(250, 250);
            dimension: dim
            autoplay: true
            shapes: [MDSphere {dim: dim radius: 200 fragmentation: 10 color: Color.DARKRED}]
        }
    }
}

  • Mysql
  • Glassfish
  • Jruby
  • Rails
  • Nblogo
Terms of Use; Privacy Policy;
© 2010, Oracle Corporation and/or its affiliates
(revision 20120518.3c65429)
 
 
Close
loading
Please Confirm
Close