Вот у меня код:
<style>
canvas {
border: 1px solid black;
}
</style>
<script>
var CameraX, CameraY, CameraZ, grph, LightX, LightY, LightZ, LightCL, LightScat;
function c3D(x, y, z) {
return (x < CameraX ? x + z / CameraZ : x - z / CameraZ) + ';' + (y < CameraY ? y + z / CameraZ : y - z / CameraZ)
}
function Point(x, y, z) {
this.x=x;
this.z=z;
this.y=y;
//;grph.fillRect(c3D(x, y, z).split(';')[0], c3D(x, y, z).split(';')[1], 1, 1)
return "[GraphObject Point]"
}
function Line(xyz1, xyz2, cl) {
var a=grph.strokeStyle;
grph.beginPath();
grph.strokeStyle=cl !== null ? cl : a;
grph.moveTo(c3D(xyz1.x, xyz1.y, xyz1.z).split(';')[0],c3D(xyz1.x, xyz1.y, xyz1.z).split(';')[1]);
grph.lineTo(c3D(xyz2.x, xyz2.y, xyz2.z).split(';')[0],c3D(xyz2.x, xyz2.y, xyz2.z).split(';')[1]);
grph.closePath()
}
function Polygone(cl1) {
var XYZes=Polygone.arguments;
cl=grph.fillStyle;
grph.beginPath();
grph.fillStyle=cl1;
grph.moveTo(c3D(XYZes[1].x, XYZes[1].y, XYZes[1].z).split(';')[0],c3D(XYZes[2].x, XYZes[2].y, XYZes[2]).split(';')[1]);
for (var i=2; i<Polygone.arguments.length; i++) {
grph.lineTo(c3D(XYZes[1].x, XYZes[1].y, XYZes[1].z).split(';')[0],c3D(XYZes[2].x, XYZes[2].y, XYZes[2].z).split(';')[1]);
}
grph.fill();
grph.fillStyle=cl;
}
function InitGraph(cnvPathDOM, lightX, lightY, lightZ, lightCl, lightScat, cameraX, cameraY, cameraZ) {
LightX=lightX || 0;
LightY=lightY || 0;
LightZ=lightZ || 0;
LightCl=lightCl || '#22FFFFFF';
LightScat=lightScat || '#00000000';
grph=cnvPathDOM.getContext("2d");
CameraX=cameraX || cnvPathDOM.width/2;
CameraY=cameraY || cnvPathDOM.height/2;
CameraZ=cameraZ || ((cnvPathDOM.width/2)+(cnvPathDOM.height/2))/2;
}
</script>
<body onload="InitGraph (document.getElementById('cnv'))">
<canvas id='cnv'></canvas>
<br/>
<button onclick="Polygone(Point(10, 10, 20), Point(290, 75, 20), Point(10, 140, 20), '#0000FF')">Poly</button>
<button onclick="Line(Point(10,40,30), Point(70, 80, 50), '#FF0000')">Line</button>
</body>
Почему он не работает? Я исправил в нем все про что ругался консоль и файрбаг, но он все равно не работает.