我有一个关于c语言画图的问

angzhy 2002-05-13 10:15:50
我有一个关于把烧杯型模具用c语言画出来现在有几个难题:
1。在完成绕y轴360度旋转后。如何再绕x轴旋转20度
2。如何在画出的图形上以近似点的形式分成一个一个小的四边形。
3。在c语言中怎么调用汇编的256色
4。这是最费劲的,给分出的小四边形着色(是灰度值)
谢谢大家,帮帮忙!很急的
...全文
52 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
三维图形:
内容较多,找本《计算机图形学》看看,里面都有

设置256色:
看看VESA标准,适用于绝大多数显示卡(老掉牙的出土文物除外)

现成的开发库:
OpenGL 适用于 UNIX/Linux/Win98/WinMe/WinNT/Win2k/WinXP 专业图形&游戏开发
DirectX 适用于 Win9x/WinMe/Win2k/WinXP 多媒体&游戏开发

有关《计算机图形学》的一些公式:
把你的n个顶点保存在矩阵里(把你的实体曲面分割成足够多的三角形):
╭ ╮
│ x1 y1 z1 1 │
│ x2 y2 z2 1 │
│ x3 y3 z3 1 │
│ ... │
│ ... │
│ xn yn zn 1 │
╰ ╯
按变换顺序乘以变换矩阵,得到新的顶点坐标,就是你想得到的结果。


以下变换矩阵是右手坐标的:

  z
  ↑
  │
  ╱╲
↙  ↘
x   y

平移 tx, ty, tz
╭ ╮
│ 1 0 0 0│
│ 0 1 0 0│
│ 0 0 1 0│
│tx ty tz 1│
╰ ╯

放大缩小 Tx, Ty, Tz
╭ ╮
│Tx 0 0 0│
│ 0 Ty 0 0│
│ 0 0 Tz 0│
│ 0 0 0 1│
╰ ╯

整体放缩 S
╭ ╮
│ 1 0 0 0│
│ 0 1 0 0│
│ 0 0 1 0│
│ 0 0 0 S│
╰ ╯

绕x轴旋转θ
╭ ╮
│ 1 0 0 0│
│ 0 cosθ sinθ 0│
│ 0 -sinθ cosθ 0│
│ 0 0 0 1│
╰ ╯

绕y轴旋转θ
╭ ╮
│ cosθ 0 -sinθ 0│
│ 0 1 0 0│
│ sinθ 0 cosθ 0│
│ 0 0 0 1│
╰ ╯

绕z轴旋转θ
╭ ╮
│ cosθ sinθ 0 0│
│-sinθ cosθ 0 0│
│ 0 0 1 0│
│ 0 0 0 1│
╰ ╯

透视图灭点:x轴的1/p,y轴的1/q,z轴的1/r
╭ ╮
│ 1 0 0 p│
│ 0 1 0 q│
│ 0 0 1 r│
│ 0 0 0 1│
╰ ╯
angzhy 2002-05-13
  • 打赏
  • 举报
回复
画出来可是有三维效果的
angzhy 2002-05-13
  • 打赏
  • 举报
回复
我的意思是,绕y轴转360度,在按照x轴转20度
ice119103 2002-05-13
  • 打赏
  • 举报
回复
1。饶X轴变换
x'=x
y'=ycos20-zsin20
z'=ysin20+zcos20
用这个矩阵形式来变换
3。设置256色
#include"graphics.h"
main()
{int drive,mode;
drive=IBM8514;
mode=IBM8514HI;
initgraph(&drive,&mode,"");
.
.
.
}

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧