在Interface Builder中,有布局选项发送到备份或发送到前方的任何元素,例如UIButton,UIImage,UILabel等...
现在,我想在运行时以编程方式执行相同的操作.
有一个简单的方法吗?
我不想创建不同的视图,只需更新z轴.
我的身材中有一个3d表面 surf(x,y,z)
我也有一个contourf表面(基本上是一个2D平面).
我在相同的图中绘制它们,但contourf绘图自动处于z=0水平.我想将contourf绘图移动到z=-10(或z轴上的任何值),但我不能这样做.
我相信这很容易但我在MATLAB help/Google中找不到答案.有任何想法吗?
如何使用鼠标绘制使用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);
Run Code Online (Sandbox Code Playgroud)
});
完整代码https://jsfiddle.net/ArtBIT/kneDX/.
但是如何添加az轴并绘制一个3d画布,例如一个立方体.
为了加深对 OpenGL 和 3D 的理解,我尝试实现一个仅在 CPU 上运行的简单渲染管道。在有意义的地方,我尝试使用与 OpenGL 相同的标准。例如,我使用右手坐标系,如 OpenGL。正如学习新东西时经常发生的那样,我现在遇到了一个无法找到答案的问题。如果以下内容有什么不明白的地方,请原谅并纠正我。
在剪辑空间(您在顶点着色器中指定的坐标gl_Position)中,负 Z 远离用户。但在深度缓冲区中,正 Z 值消失了(如果您使用默认深度设置)。
这个问题的一个答案表明翻转是由于投影变换造成的。但我做了一个小实验(基于 WebGL/OpenGL ES),结果表明相反的情况:在剪辑空间中,即使您不使用投影变换,Z 也指向远离用户的方向。
因此,在某个时刻,在您将 交给它之后gl_Position,OpenGL 会翻转 Z 坐标。这是什么时候、怎样的呢?
我的猜测是它在视口转换中,但我无法找到支持这一点的文档。
z-axis ×4
3d ×1
canvas ×1
cocoa-touch ×1
html5-canvas ×1
javascript ×1
matlab ×1
opengl ×1
plot ×1