多邊形動畫

2021-10-05 04:31:21 字數 2774 閱讀 3326

繞x,y,z軸做旋轉運動,並放大

up:加大變化量

down:減小變化量

效果圖:

// 變換量

var angle_step = 30.0; //角度

var scale_step = 0.2; //

var distance_step = 0.00; //位置

function main()

if (!initshaders(gl, vshader_source, fshader_source))

//write the positions of vertices to vertex shader

var n = initvertexbuffers(gl);

if (n < 0)

// specify the color for clearing gl.clearcolor(0, 0, 0, 1);

var u_modelmatrix = gl.getuniformlocation(gl.program, 'u_modelmatrix');

if (!u_modelmatrix)

var currentangle = 0.0;

var currentscale = 0.0;//初始大小

var currentx = 0.0; //初始位置

var modelmatrix = new matrix4(); //模矩陣

var tick = function() ;

tick();

}function initvertexbuffers(gl)

//bind the buffer object to the target

gl.bindbuffer(gl.array_buffer, vertexbuffer);

//write datas into the buffer object

gl.bufferdata(gl.array_buffer, verticescolors, gl.static_draw);

var fsize = verticescolors.bytes_per_element;

var a_position = gl.getattriblocation(gl.program, 'a_position');

if (a_position < 0)

//assign the buffer object to a_position variable

//將緩衝區物件分配給a_position

gl.vertexattribpointer(a_position, 2, gl.float, false, fsize * 5, 0);

//enable the assignment to a_position variable

//緩衝區分配

gl.enablevertexattribarray(a_position);

//獲取a_color儲存位置

var a_color = gl.getattriblocation(gl.program, 'a_color');

if (!a_color < 0)

//將緩衝區物件分配給a_color

gl.vertexattribpointer(a_color, 3, gl.float, false, fsize * 5, fsize * 2);

//開啟緩衝區分配

gl.enablevertexattribarray(a_color);

//繫結緩衝區

// gl.bindbuffer(gl.array_buffer,null);

return n;

}function draw(gl, n, currentangle, currentscale, currentx, modelmatrix, u_modelmatrix)

//上一次函式被調起的時間

var r_last = date.now();

function animate_r(angle)

var s_last = date.now();

function animate_s(scale)

var t_last = date.now();

function animate_t(tx) else

}function up()

function down()

求任意多邊形面積(凹多邊形和凸多邊形)

遇到問題 已知多邊形的各個左邊點,要求多邊形的面積 然後我搜尋了下看到這篇文章 這個人說的不多,但是簡單明瞭 首先已知各定點的座標分別為 x1,y1 x2,y2 x3,y3 xn,yn 則該多邊形的面積公式為 s 1 2 x1 y2 x2 y1 x2 y3 x3 y2 xk yk 1 xk 1 yk...

驗證多邊形是否為凸多邊形

驗證多邊形是否為凸多邊形 2108 shape of hdu include define debug 0 int crossmulti int x0,int y0,int x1,int y1,int x2,int y2 int main int n,i int f x,f y 第1個點 int s...

多邊形面積

點積 a b x1 x2 y1 y2 a b cos 點積的結果是乙個數值 叉積 a b x1 y2 x2 y1 a b sin 叉積的結果也是乙個向量,是垂直於向量a,b所形成的平面,如果看成三維座標的話是在 z 軸上,上面結果是它的模。三角形的面積 向量a和 向量b的叉積的絕對值表示 以 向量a...