【发布时间】:2017-05-30 22:55:24
【问题描述】:
如何/是否可以使用鼠标绘制使用 3 轴 (x,y,z) 的画布。
我知道可以在 2 轴上绘制画布,我已经成功地做到了。
但我不知道如何在 3 轴上绘制它(例如立方体)。
以下显示了一些 2d 画布绘图功能
$(canvas).on('mousemove', function(e) {
mousex = parseInt(e.clientX-canvasx);
mousey = parseInt(e.clientY-canvasy);
if(mousedown) {
ctx.beginPath();
if(tooltype=='draw') {
ctx.globalCompositeOperation = 'source-over';
ctx.strokeStyle = 'black';
ctx.lineWidth = 3;
} else {
ctx.globalCompositeOperation = 'destination-out';
ctx.lineWidth = 10;
}
ctx.moveTo(last_mousex,last_mousey);
ctx.lineTo(mousex,mousey);
ctx.lineJoin = ctx.lineCap = 'round';
ctx.stroke();
}
last_mousex = mousex;
last_mousey = mousey;
//Output
$('#output').html('current: '+mousex+', '+mousey+'<br/>last: '+last_mousex+', '+last_mousey+'<br/>mousedown: '+mousedown);
});
完整代码https://jsfiddle.net/ArtBIT/kneDX/。
但是如何添加 z 轴并绘制 3d 画布,例如立方体。
【问题讨论】:
-
可能吗?是的。简单的?没有。
-
@evolutionxbox 嗨,您知道可以解释几个步骤(或示例)的教程页面吗,或者您能解释一下我必须执行哪些步骤才能完成此操作吗?
-
对不起。我没有时间,也没有精力去获取这方面的知识。
-
您的意思是在 3D 表面上绘制,还是在 3D 中绘制?要在 3D 表面上绘图,请将鼠标投影到 3D 场景中,在该场景中,来自相机的光线通过鼠标截取多边形,您将获得可用于绘制的 3D 坐标。要在 3D 中绘图,您需要第 3 个输入,有类似鼠标的输入设备可以返回真正的 3D 位置,但标准鼠标界面仅设计用于 2D,尽管有一些解决方法可以在 3 个位置输入(6D 真的是3D 输入设备也有偏航、俯仰和滚动)(一些 2D 鼠标有方向,也可以为您提供第三轴)
-
@Blindman67 谢谢你的信息,你有那个案例的教程页面吗?
标签: javascript canvas html5-canvas z-axis