@@ -45,6 +45,9 @@ var DEFAULTS = {
45
45
xValueLabel : function ( v ) { return v ; } ,
46
46
yValueLabel : function ( v ) { return v ; } ,
47
47
zValueLabel : function ( v ) { return v ; } ,
48
+ showXAxis : true ,
49
+ showYAxis : true ,
50
+ showZAxis : true ,
48
51
showGrid : true ,
49
52
showPerspective : true ,
50
53
showShadow : false ,
@@ -1288,7 +1291,7 @@ Graph3d.prototype._redrawAxis = function() {
1288
1291
to = new Point3d ( x , yRange . max , zRange . min ) ;
1289
1292
this . _line3d ( ctx , from , to , this . gridColor ) ;
1290
1293
}
1291
- else {
1294
+ else if ( this . showXAxis ) {
1292
1295
from = new Point3d ( x , yRange . min , zRange . min ) ;
1293
1296
to = new Point3d ( x , yRange . min + gridLenX , zRange . min ) ;
1294
1297
this . _line3d ( ctx , from , to , this . axisColor ) ;
@@ -1298,10 +1301,12 @@ Graph3d.prototype._redrawAxis = function() {
1298
1301
this . _line3d ( ctx , from , to , this . axisColor ) ;
1299
1302
}
1300
1303
1301
- yText = ( armVector . x > 0 ) ? yRange . min : yRange . max ;
1302
- var point3d = new Point3d ( x , yText , zRange . min ) ;
1303
- var msg = ' ' + this . xValueLabel ( x ) + ' ' ;
1304
- this . drawAxisLabelX ( ctx , point3d , msg , armAngle , textMargin ) ;
1304
+ if ( this . showXAxis ) {
1305
+ yText = ( armVector . x > 0 ) ? yRange . min : yRange . max ;
1306
+ var point3d = new Point3d ( x , yText , zRange . min ) ;
1307
+ var msg = ' ' + this . xValueLabel ( x ) + ' ' ;
1308
+ this . drawAxisLabelX ( ctx , point3d , msg , armAngle , textMargin ) ;
1309
+ }
1305
1310
1306
1311
step . next ( ) ;
1307
1312
}
@@ -1320,7 +1325,7 @@ Graph3d.prototype._redrawAxis = function() {
1320
1325
to = new Point3d ( xRange . max , y , zRange . min ) ;
1321
1326
this . _line3d ( ctx , from , to , this . gridColor ) ;
1322
1327
}
1323
- else {
1328
+ else if ( this . showYAxis ) {
1324
1329
from = new Point3d ( xRange . min , y , zRange . min ) ;
1325
1330
to = new Point3d ( xRange . min + gridLenY , y , zRange . min ) ;
1326
1331
this . _line3d ( ctx , from , to , this . axisColor ) ;
@@ -1330,71 +1335,79 @@ Graph3d.prototype._redrawAxis = function() {
1330
1335
this . _line3d ( ctx , from , to , this . axisColor ) ;
1331
1336
}
1332
1337
1333
- xText = ( armVector . y > 0 ) ? xRange . min : xRange . max ;
1334
- point3d = new Point3d ( xText , y , zRange . min ) ;
1335
- var msg = ' ' + this . yValueLabel ( y ) + ' ' ;
1336
- this . drawAxisLabelY ( ctx , point3d , msg , armAngle , textMargin ) ;
1338
+ if ( this . showYAxis ) {
1339
+ xText = ( armVector . y > 0 ) ? xRange . min : xRange . max ;
1340
+ point3d = new Point3d ( xText , y , zRange . min ) ;
1341
+ var msg = ' ' + this . yValueLabel ( y ) + ' ' ;
1342
+ this . drawAxisLabelY ( ctx , point3d , msg , armAngle , textMargin ) ;
1343
+ }
1337
1344
1338
1345
step . next ( ) ;
1339
1346
}
1340
1347
1341
1348
// draw z-grid lines and axis
1342
- ctx . lineWidth = 1 ;
1343
- prettyStep = ( this . defaultZStep === undefined ) ;
1344
- step = new StepNumber ( zRange . min , zRange . max , this . zStep , prettyStep ) ;
1345
- step . start ( true ) ;
1349
+ if ( this . showZAxis ) {
1350
+ ctx . lineWidth = 1 ;
1351
+ prettyStep = ( this . defaultZStep === undefined ) ;
1352
+ step = new StepNumber ( zRange . min , zRange . max , this . zStep , prettyStep ) ;
1353
+ step . start ( true ) ;
1346
1354
1347
- xText = ( armVector . x > 0 ) ? xRange . min : xRange . max ;
1348
- yText = ( armVector . y < 0 ) ? yRange . min : yRange . max ;
1355
+ xText = ( armVector . x > 0 ) ? xRange . min : xRange . max ;
1356
+ yText = ( armVector . y < 0 ) ? yRange . min : yRange . max ;
1349
1357
1350
- while ( ! step . end ( ) ) {
1351
- var z = step . getCurrent ( ) ;
1358
+ while ( ! step . end ( ) ) {
1359
+ var z = step . getCurrent ( ) ;
1352
1360
1353
- // TODO: make z-grid lines really 3d?
1354
- var from3d = new Point3d ( xText , yText , z ) ;
1355
- var from2d = this . _convert3Dto2D ( from3d ) ;
1356
- to = new Point2d ( from2d . x - textMargin , from2d . y ) ;
1357
- this . _line ( ctx , from2d , to , this . axisColor ) ;
1361
+ // TODO: make z-grid lines really 3d?
1362
+ var from3d = new Point3d ( xText , yText , z ) ;
1363
+ var from2d = this . _convert3Dto2D ( from3d ) ;
1364
+ to = new Point2d ( from2d . x - textMargin , from2d . y ) ;
1365
+ this . _line ( ctx , from2d , to , this . axisColor ) ;
1358
1366
1359
- var msg = this . zValueLabel ( z ) + ' ' ;
1360
- this . drawAxisLabelZ ( ctx , from3d , msg , 5 ) ;
1367
+ var msg = this . zValueLabel ( z ) + ' ' ;
1368
+ this . drawAxisLabelZ ( ctx , from3d , msg , 5 ) ;
1361
1369
1362
- step . next ( ) ;
1363
- }
1370
+ step . next ( ) ;
1371
+ }
1364
1372
1365
- ctx . lineWidth = 1 ;
1366
- from = new Point3d ( xText , yText , zRange . min ) ;
1367
- to = new Point3d ( xText , yText , zRange . max ) ;
1368
- this . _line3d ( ctx , from , to , this . axisColor ) ;
1373
+ ctx . lineWidth = 1 ;
1374
+ from = new Point3d ( xText , yText , zRange . min ) ;
1375
+ to = new Point3d ( xText , yText , zRange . max ) ;
1376
+ this . _line3d ( ctx , from , to , this . axisColor ) ;
1377
+ }
1369
1378
1370
1379
// draw x-axis
1371
- var xMin2d ;
1372
- var xMax2d ;
1373
- ctx . lineWidth = 1 ;
1380
+ if ( this . showXAxis ) {
1381
+ var xMin2d ;
1382
+ var xMax2d ;
1383
+ ctx . lineWidth = 1 ;
1374
1384
1375
- // line at yMin
1376
- xMin2d = new Point3d ( xRange . min , yRange . min , zRange . min ) ;
1377
- xMax2d = new Point3d ( xRange . max , yRange . min , zRange . min ) ;
1378
- this . _line3d ( ctx , xMin2d , xMax2d , this . axisColor ) ;
1379
- // line at ymax
1380
- xMin2d = new Point3d ( xRange . min , yRange . max , zRange . min ) ;
1381
- xMax2d = new Point3d ( xRange . max , yRange . max , zRange . min ) ;
1382
- this . _line3d ( ctx , xMin2d , xMax2d , this . axisColor ) ;
1385
+ // line at yMin
1386
+ xMin2d = new Point3d ( xRange . min , yRange . min , zRange . min ) ;
1387
+ xMax2d = new Point3d ( xRange . max , yRange . min , zRange . min ) ;
1388
+ this . _line3d ( ctx , xMin2d , xMax2d , this . axisColor ) ;
1389
+ // line at ymax
1390
+ xMin2d = new Point3d ( xRange . min , yRange . max , zRange . min ) ;
1391
+ xMax2d = new Point3d ( xRange . max , yRange . max , zRange . min ) ;
1392
+ this . _line3d ( ctx , xMin2d , xMax2d , this . axisColor ) ;
1393
+ }
1383
1394
1384
1395
// draw y-axis
1385
- ctx . lineWidth = 1 ;
1386
- // line at xMin
1387
- from = new Point3d ( xRange . min , yRange . min , zRange . min ) ;
1388
- to = new Point3d ( xRange . min , yRange . max , zRange . min ) ;
1389
- this . _line3d ( ctx , from , to , this . axisColor ) ;
1390
- // line at xMax
1391
- from = new Point3d ( xRange . max , yRange . min , zRange . min ) ;
1392
- to = new Point3d ( xRange . max , yRange . max , zRange . min ) ;
1393
- this . _line3d ( ctx , from , to , this . axisColor ) ;
1396
+ if ( this . showYAxis ) {
1397
+ ctx . lineWidth = 1 ;
1398
+ // line at xMin
1399
+ from = new Point3d ( xRange . min , yRange . min , zRange . min ) ;
1400
+ to = new Point3d ( xRange . min , yRange . max , zRange . min ) ;
1401
+ this . _line3d ( ctx , from , to , this . axisColor ) ;
1402
+ // line at xMax
1403
+ from = new Point3d ( xRange . max , yRange . min , zRange . min ) ;
1404
+ to = new Point3d ( xRange . max , yRange . max , zRange . min ) ;
1405
+ this . _line3d ( ctx , from , to , this . axisColor ) ;
1406
+ }
1394
1407
1395
1408
// draw x-label
1396
1409
var xLabel = this . xLabel ;
1397
- if ( xLabel . length > 0 ) {
1410
+ if ( xLabel . length > 0 && this . showXAxis ) {
1398
1411
yOffset = 0.1 / this . scale . y ;
1399
1412
xText = ( xRange . max + 3 * xRange . min ) / 4 ;
1400
1413
yText = ( armVector . x > 0 ) ? yRange . min - yOffset : yRange . max + yOffset ;
@@ -1404,7 +1417,7 @@ Graph3d.prototype._redrawAxis = function() {
1404
1417
1405
1418
// draw y-label
1406
1419
var yLabel = this . yLabel ;
1407
- if ( yLabel . length > 0 ) {
1420
+ if ( yLabel . length > 0 && this . showYAxis ) {
1408
1421
xOffset = 0.1 / this . scale . x ;
1409
1422
xText = ( armVector . y > 0 ) ? xRange . min - xOffset : xRange . max + xOffset ;
1410
1423
yText = ( yRange . max + 3 * yRange . min ) / 4 ;
@@ -1415,7 +1428,7 @@ Graph3d.prototype._redrawAxis = function() {
1415
1428
1416
1429
// draw z-label
1417
1430
var zLabel = this . zLabel ;
1418
- if ( zLabel . length > 0 ) {
1431
+ if ( zLabel . length > 0 && this . showZAxis ) {
1419
1432
offset = 30 ; // pixels. // TODO: relate to the max width of the values on the z axis?
1420
1433
xText = ( armVector . x > 0 ) ? xRange . min : xRange . max ;
1421
1434
yText = ( armVector . y < 0 ) ? yRange . min : yRange . max ;
0 commit comments