我正在一张图像上画一些几何图形。问题是坐标是以浮动的形式出来的,所以我无法绘制它们。作为一项工作,我使用floor();将其截断到最近的Integer。这在某些情况下很好,只是它稍微改变了我的形象。
x=9.7
x'=floor(x)= 9 //the plot is now at 9 and not at 9.7 as desired, (this is 'shift')
但是,如果我的要求是在等距上绘制多个形状,我将面临问题,因为每个形状的移位(因为底面();)并不是均匀的。
它就像数字通信中的量化噪声。
有什么办法可以让我解决这个问题吗?
我对堆栈溢出和编程都很陌生,所以如果我问这个问题很糟糕的话,请原谅我。
因此,假设我有一个从1到4之间的整数值的二维数组。
3 3 3 1 3 1 3 1 2 1
1 3 1 3 3 1 1 1 1 1
1 4 3 3 1 3 3 4 3 4
1 4 1 1 3 3 1 4 2 4
1 1 1 4 1 3 3 1 1 3
1 2 3 3 3 3 3 3 1 1
4 1 4 3 3 2 1 1 4 1
1 3 3 3 4 1 4 2 2 3
让我重写它,这样我就可以隔离数组的一部分,我希望我们观察到:
x x x x x x x x x x
x x x x x x x x x x
x x x x
是否有什么历史原因,纹理坐标经常被称为UVs?我知道顶点位置是x,y,z,但是即使OpenGL有TEXTURE_WRAP_S和TEXTURE_WRAP_T,而GLSL有别名,所以如果纹理coord在vec中,可以使用D2访问它。
someVec.st
但不是
someVec.uv (these would be the 3rd and 4th elements of the vector)
然而,几乎每个建模包都称它们为UVs 玛雅、搅拌机、统一、不真实、3 3 3dsmax。
UVs这个词是从哪里来的?这是计算机图形学历史的一个已知部分,还是它们被称为cg时间像素丢失的原因?
我是计算机图形学三年级的学生,目前我正在学习如何用旋转绘制椭圆。
当我用90度或180度预置旋转时,没有什么不寻常的事情发生,但当我试图用任何其他值旋转时,结果会是这样的:
📷
这是我在做什么的伪代码,我没有把原来的函数,因为它是巨大的。
function draw_circle( x_origin , y_origin , width , height ){
// go in scan-line order and try to find intercept x,y around the ellipse
for( y = 0 ; y <= height ; y++ ){