绘制椭圆并使其旋转

来源:百度知道 编辑:UC知道 时间:2024/05/13 18:41:14
求C语言程序
要求:在屏幕上绘制一个椭圆,每按一次键盘转三十度。椭圆显示的位置、大小和转动的方向由键盘输入,并将输入的数据送文件保存。按回车键程序结束。(功能延伸:改变数据文件的内容后,再根据数据文件里的数据绘制五椭圆)

VC++ 编译器,Win32 API C语言程序可以调用画椭圆函数:
BOOL Ellipse(
HDC hdc,
int nLeftRect,
int nTopRect,
int nRightRect,
int nBottomRect
);
hdc -- DC句柄
另四个参数是椭圆外切长方形左上角x坐标,左上角y坐标,右下角x坐标,右下角y坐标。

例如 Ellipse(hdc, -40, -30, 40, 30);
(正负值与坐标系有关)。
如果绕 [0,0] 旋转.
x1[i] = r * cos(w*t);
y1[i] = r * sin(w*t);
x2[i] = r * cos(w*t + pi);
y2[i] = r * sin(w*t + pi);
Ellipse(hdc, x1[i], y1[i], x2[i], y2[i]);
w -- 角速度。 t -- 时间。 pi -- 圆周率
r -- [0,0] 到 外切长方形 角点 距离。

如果编译器没有画椭圆函数,那么自己计算椭圆线的沿线坐标,用画直线线段实现。
x = a cos(t);
y = b sin(t);
a,b, 是 椭圆 的半轴。