我是directx的新手,想知道更多,我试图从directxtutorial.com的代码我存在D3DXCreateCylinder的任何示例\ sample?由于在DirectX中试图通过D3DXCreateCylinder绘制圆柱体
0
A
回答
1
好吧,
D3DXCreateCylinder可以作为这样的
LPD3DXMESH cylinder; // Define a pointer to the mesh.
D3DXCreateCylinder(d3ddev, 2.0f, 0.0f, 10.0f, 10, 10, &cylinder, NULL);
这是怎么回事呢?
- d3ddev应该是您的设备上下文,我会假设您已创建。
- 在负Z.
- 半径上的积极Z.
- 的上Z轴的形状的长度的半径。
- Z周围的多边形(或细分)数量。
- Z轴上的多边形数量。
- 保存创建的网格的指针地址。
修补这些值,试验不会伤害。
0
0
默认情况下,D3DXCreateCylinder API不产生纹理贴图坐标创建的圆柱形网格上方的纹理。
替代,你可以制定自己的圆柱形几何像下面的纹理映射:
for(DWORD i = 0; i < Sides; i++)
{
FLOAT theta = (2 * D3DX_PI * i)/(Sides - 1);
pVertices[2 * i + 0].position = D3DXVECTOR3(radius*sinf(theta), -height, radius*cosf(theta));
pVertices[2 * i + 0].color = 0xffffffff;
pVertices[2 * i + 0].tu = ((FLOAT)i)/(Sides - 1);
pVertices[2 * i + 0].tv = 1.0f;
pVertices[2 * i + 1].position = D3DXVECTOR3(radius*sinf(theta), height, radius*cosf(theta));
pVertices[2 * i + 1].color = 0xff808080;
pVertices[2 * i + 1].tu = ((FLOAT)i)/(Sides - 1);
pVertices[2 * i + 1].tv = 0.0f;
}
相关问题
- 1. D3DXCreateCylinder为什么不创建圆柱体?
- 2. 如何用OpenGLES绘制圆柱体?
- 3. 在directx中绘制一个圆圈9
- 4. 如何在OpenTK(.Glu.Cylinder)中绘制圆柱体?
- 5. 如何在Android上的OpenGL-es中绘制圆柱体?
- 6. 现代OpenGL:绘制球体和圆柱体
- 7. 如何在非托管DirectX中将贴图映射到圆柱体?
- 8. 如何在y或x轴上绘制圆柱体opengl
- 9. 如何绘制连接OpenGL中两个点的圆柱体
- 10. DirectX字体没有绘图?
- 11. 如何使用gl_polygon绘制三维圆柱体
- 12. OpenGL:三角带环 - 如何绘制圆柱体?
- 13. 将圆柱体模型绘制为粗3d线
- 14. Gnuplot和球形/圆柱形绘图
- 15. 在Matplotlib中绘制一个以飞机为中心的实心圆柱体
- 16. 在Opengl中绘制椭圆球体
- 17. 如何通过GDI绘制椭圆C#?
- 18. 通过两点绘制精确圆圈
- 19. 如何通过3点绘制圆弧
- 20. 在Windows下使用DirectX绘制位图
- 21. 在圆柱体中生成随机点
- 22. 将图像排列成圆柱体?
- 23. 在Android中通过ImageView绘制图层
- 24. 试图优化线条与圆柱体相交
- 25. 绘制图像或绘制实心圆?
- 26. 在圆形视图中绘制文本?
- 27. 创建透明圆柱体
- 28. X3dom:旋转圆柱体
- 29. 圆柱投影到球体
- 30. 查看圆柱体内部
这将真正帮助,如果你减少代码张贴到*最小的可重复的例子*量 - 因为它是现在,有* waaaay *太多,以避免通过。 – tmpearce 2012-03-15 04:16:11
你读过这篇文章:http://msdn.microsoft.com/en-us/library/windows/desktop/bb172762%28v=vs.85%29.aspx只要你理解3D坐标,功能不应该太硬。参数也应该是自解释的。 – Aleks 2012-03-20 16:04:21