![]() |
【转帖】向高手求救getmodeltoeyetransform函数
向高手求救getmodeltoeyetransform函数
向高手求救getmodeltoeyetransform函数 asdkcoordsamp::viewportdraw(acgiviewportdraw* pv) { pv->subentitytraits().setfilltype(kacgifillalways); const int count = 3; acgepoint3d verts[count]; verts[0] = acgepoint3d(0.0, 0.0, 0.0); verts[1] = acgepoint3d(1.0, 0.0, 0.0); verts[2] = acgepoint3d(1.0, 1.0, 0.0); // draw model space line segment. // pv->subentitytraits().setcolor(kblue); pv->geometry().polygon(count, verts); // compute its representation in eye space. // acgematrix3d mat; pv->viewport().getmodeltoeyetransform(mat); for (int i = 0; i < count; i++) { verts[i].x += 0.01; verts[i].y += 0.01; verts[i].z += 0.01; verts[i].transformby(mat); } // display the eye coordinate equivalent of the // model space polygon. // pv->subentitytraits().setcolor(kgreen); pv->geometry().polygoneye(count, verts); // convert from eye to display coordinates. // for (int i = 0; i < count; i++) { verts[i].x += 0.01; verts[i].y += 0.01; verts[i].z += 0.01; //verts[i].transformby(mat); } // draw the display space equivalent of the // model space polygon. // pv->subentitytraits().setcolor(kred); pv->geometry().polygondc(count, verts); } 在这个函数中 pv->viewport().getmodeltoeyetransform(mat); for (int i = 0; i < count; i++) { verts[i].x += 0.01; verts[i].y += 0.01; verts[i].z += 0.01; verts[i].transformby(mat); } 有getmodeltoeyetransform(mat);和verts[i].transformby(mat) 起的什么作用啊? 有人给详细解释一下吗? 如何控制视图的? |
所有的时间均为北京时间。 现在的时间是 12:38 AM. |