|  | @ -208,17 +208,17 @@ Graph3d.prototype._convertPointToTranslation = function(point3d) { | 
														
													
														
															
																|  |  | ay = point3d.y * this.scale.y, |  |  | ay = point3d.y * this.scale.y, | 
														
													
														
															
																|  |  | az = point3d.z * this.scale.z, |  |  | az = point3d.z * this.scale.z, | 
														
													
														
															
																|  |  |  |  |  |  | 
														
													
														
															
																|  |  | cx = CameraLocation.x, |  |  |  | 
														
													
														
															
																|  |  | cy = CameraLocation.y, |  |  |  | 
														
													
														
															
																|  |  | cz = CameraLocation.z, |  |  |  | 
														
													
														
															
																|  |  |  |  |  | cx = cameraLocation.x, | 
														
													
														
															
																|  |  |  |  |  | cy = cameraLocation.y, | 
														
													
														
															
																|  |  |  |  |  | cz = cameraLocation.z, | 
														
													
														
															
																|  |  |  |  |  |  | 
														
													
														
															
																|  |  | // calculate angles |  |  | // calculate angles | 
														
													
														
															
																|  |  | sinTx = Math.sin(CameraRotation.x), |  |  |  | 
														
													
														
															
																|  |  | cosTx = Math.cos(CameraRotation.x), |  |  |  | 
														
													
														
															
																|  |  | sinTy = Math.sin(CameraRotation.y), |  |  |  | 
														
													
														
															
																|  |  | cosTy = Math.cos(CameraRotation.y), |  |  |  | 
														
													
														
															
																|  |  | sinTz = Math.sin(CameraRotation.z), |  |  |  | 
														
													
														
															
																|  |  | cosTz = Math.cos(CameraRotation.z), |  |  |  | 
														
													
														
															
																|  |  |  |  |  | sinTx = Math.sin(cameraRotation.x), | 
														
													
														
															
																|  |  |  |  |  | cosTx = Math.cos(cameraRotation.x), | 
														
													
														
															
																|  |  |  |  |  | sinTy = Math.sin(cameraRotation.y), | 
														
													
														
															
																|  |  |  |  |  | cosTy = Math.cos(cameraRotation.y), | 
														
													
														
															
																|  |  |  |  |  | sinTz = Math.sin(cameraRotation.z), | 
														
													
														
															
																|  |  |  |  |  | cosTz = Math.cos(cameraRotation.z), | 
														
													
														
															
																|  |  |  |  |  |  | 
														
													
														
															
																|  |  | // calculate translation |  |  | // calculate translation | 
														
													
														
															
																|  |  | dx = cosTy * (sinTz * (ay - cy) + cosTz * (ax - cx)) - sinTy * (az - cz), |  |  | dx = cosTy * (sinTz * (ay - cy) + cosTz * (ax - cx)) - sinTy * (az - cz), | 
														
													
												
													
														
															
																|  | @ -979,6 +979,8 @@ Graph3d.prototype._redrawLegend = function() { | 
														
													
														
															
																|  |  | step.start(true); |  |  | step.start(true); | 
														
													
														
															
																|  |  |  |  |  |  | 
														
													
														
															
																|  |  | var y; |  |  | var y; | 
														
													
														
															
																|  |  |  |  |  | var from; | 
														
													
														
															
																|  |  |  |  |  | var to; | 
														
													
														
															
																|  |  | while (!step.end()) { |  |  | while (!step.end()) { | 
														
													
														
															
																|  |  | y = bottom - (step.getCurrent() - legendMin) / (legendMax - legendMin) * height; |  |  | y = bottom - (step.getCurrent() - legendMin) / (legendMax - legendMin) * height; | 
														
													
														
															
																|  |  | from  = new Point2d(left - gridLineLen, y); |  |  | from  = new Point2d(left - gridLineLen, y); | 
														
													
												
													
														
															
																|  | @ -1362,6 +1364,21 @@ Graph3d.prototype._hsv2rgb = function(H, S, V) { | 
														
													
														
															
																|  |  | }; |  |  | }; | 
														
													
														
															
																|  |  |  |  |  |  | 
														
													
														
															
																|  |  |  |  |  |  | 
														
													
														
															
																|  |  |  |  |  | Graph3d.prototype._drawGridLine = function(ctx, from, to) { | 
														
													
														
															
																|  |  |  |  |  | if (from === undefined || to === undefined) { | 
														
													
														
															
																|  |  |  |  |  | return; | 
														
													
														
															
																|  |  |  |  |  | } | 
														
													
														
															
																|  |  |  |  |  |  | 
														
													
														
															
																|  |  |  |  |  | // calculate Hue from the current value. At zMin the hue is 240, at zMax the hue is 0 | 
														
													
														
															
																|  |  |  |  |  | var zAvg = (from.point.z + to.point.z) / 2; | 
														
													
														
															
																|  |  |  |  |  | var h    = (1 - (zAvg - this.zMin) * this.scale.z  / this.verticalRatio) * 240; | 
														
													
														
															
																|  |  |  |  |  |  | 
														
													
														
															
																|  |  |  |  |  | ctx.lineWidth   = this._getStrokeWidth(from) * 2; | 
														
													
														
															
																|  |  |  |  |  | ctx.strokeStyle = this._hsv2rgb(h, 1, 1); | 
														
													
														
															
																|  |  |  |  |  | this._line(ctx, from.screen, to.screen); | 
														
													
														
															
																|  |  |  |  |  | }; | 
														
													
														
															
																|  |  |  |  |  |  | 
														
													
														
															
																|  |  |  |  |  |  | 
														
													
														
															
																|  |  | /** |  |  | /** | 
														
													
														
															
																|  |  | * Draw all datapoints as a grid |  |  | * Draw all datapoints as a grid | 
														
													
														
															
																|  |  | * This function can be used when the style is 'grid' |  |  | * This function can be used when the style is 'grid' | 
														
													
												
													
														
															
																|  | @ -1444,25 +1461,10 @@ Graph3d.prototype._redrawDataGrid = function() { | 
														
													
														
															
																|  |  | } |  |  | } | 
														
													
														
															
																|  |  | } |  |  | } | 
														
													
														
															
																|  |  | else { // grid style |  |  | else { // grid style | 
														
													
														
															
																|  |  |  |  |  |  | 
														
													
														
															
																|  |  | var drawGridLine = function(ctx, from, to) { |  |  |  | 
														
													
														
															
																|  |  | if (from === undefined || to === undefined) { |  |  |  | 
														
													
														
															
																|  |  | return; |  |  |  | 
														
													
														
															
																|  |  | } |  |  |  | 
														
													
														
															
																|  |  |  |  |  |  | 
														
													
														
															
																|  |  | // calculate Hue from the current value. At zMin the hue is 240, at zMax the hue is 0 |  |  |  | 
														
													
														
															
																|  |  | zAvg = (from.point.z + to.point.z) / 2; |  |  |  | 
														
													
														
															
																|  |  | h = (1 - (zAvg - this.zMin) * this.scale.z  / this.verticalRatio) * 240; |  |  |  | 
														
													
														
															
																|  |  |  |  |  |  | 
														
													
														
															
																|  |  | ctx.lineWidth = this._getStrokeWidth(from) * 2; |  |  |  | 
														
													
														
															
																|  |  | ctx.strokeStyle = this._hsv2rgb(h, 1, 1); |  |  |  | 
														
													
														
															
																|  |  | this._line(ctx, from.screen, to.screen); |  |  |  | 
														
													
														
															
																|  |  | }; |  |  |  | 
														
													
														
															
																|  |  |  |  |  |  | 
														
													
														
															
																|  |  | for (i = 0; i < this.dataPoints.length; i++) { |  |  | for (i = 0; i < this.dataPoints.length; i++) { | 
														
													
														
															
																|  |  | point = this.dataPoints[i]; |  |  | point = this.dataPoints[i]; | 
														
													
														
															
																|  |  | drawGridLine(ctx, point, point.pointRight); |  |  |  | 
														
													
														
															
																|  |  | drawGridLine(ctx, point, point.pointTop); |  |  |  | 
														
													
														
															
																|  |  |  |  |  | this._drawGridLine(ctx, point, point.pointRight); | 
														
													
														
															
																|  |  |  |  |  | this._drawGridLine(ctx, point, point.pointTop); | 
														
													
														
															
																|  |  | } |  |  | } | 
														
													
														
															
																|  |  | } |  |  | } | 
														
													
														
															
																|  |  | }; |  |  | }; | 
														
													
												
													
														
															
																|  |  |