Die folgende Vorlage ist ein Ausschnitt aus der Demo Seite.
#INCLUDE JsGraphX3D.inc
#INCLUDE ControlPanel.inc
<jscript>
var Model = {
HAng: 0,
VAng: 0,
Dist: 100,
Scale: 5,
graph: null,
Update: function( field ) {
ControlPanels.Update();
this.Draw( this.graph );
},
Draw: function( g ) {
g.Reset3D( true ); // clear graphic
g.SetAngleMeasure( 'deg' );
g.SetCameraScale( this.scale );
g.SetCameraView( [0,0,0], this.HAng, this.VAng, this.Dist );
var VpScaleArgs = true;
var VpClip = false;
var VpLeft = 8;
var VpTop = 8;
var VpRight = -8;
var VpBottom = -8;
g.SetViewport( VpLeft, VpTop, VpRight, VpBottom, VpScaleArgs, VpClip );
g.SetWindowToCameraScreen();
g.SetCameraClipping( 0.001 );
// draw some 3D graphic
},
};
Model.graph = NewGraphX3D( {
Id: 'ModelCanvas',
Width: '100%',
Height: '56%',
DrawFunc: function(g){ Model.Draw(g); },
AutoReset: false,
AutoClear: false,
AutoScalePix: true
} );
ControlPanels.NewSliderPanel( {
ModelRef: 'ModelPanel',
NCols: 2,
ValuePos: 'left',
OnModelChange: function(field){ Model.Update(field); },
Format: 'fix0',
Digits: 1,
ReadOnly: false,
PanelFormat: 'InputShortWidth'
} ).AddValueSliderField( {
Name: 'HAng',
Min: -180,
Max: 360+180
} ).AddValueSliderField( {
Name: 'VAng',
Min: -89.9,
Max: 89.9
} ).AddValueSliderField( {
Name: 'Dist',
Digits: 0,
Min: 1.5,
Max: 100
} ).AddValueSliderField( {
Name: 'Scale',
Digits: 0,
Min: 2.2,
Max: 10
} ).Render();
xOnLoad( function(){ Model.Update(); } );
</jscript>