| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 449 人关注过本帖
标题:这个c程序的椭圆不能旋转请高手帮兄弟看一下吧!!!先谢谢了 !!
取消只看楼主 加入收藏
dai965391730
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-6-15
收藏
 问题点数:0 回复次数:0 
这个c程序的椭圆不能旋转请高手帮兄弟看一下吧!!!先谢谢了 !!
#include <math.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <graphics.h>

void drawb(int x, int y, float a, float b, float c, int color);

int main()
{
 int GraphDriver;
 int GraphMode;
 float arg = 0;
 int x, y;
 float a, b;
 int keya, keyb;
 int step = 30;

printf("input x: ");
 scanf("%d", &x);
 printf("input y: ");
 scanf("%d", &y);
 printf("input a: ");
 scanf("%f", &a);
 printf("input b: ");
 scanf("%f", &b);

 GraphDriver = DETECT;
initgraph(&GraphDriver, &GraphMode, "");

 drawb(x, y, a, b, arg, 12);

 while(1)
{
  while(kbhit())
{
 keya = getch();
if (keya == 13)
closegraph();
return 0;
}
if (keya == 0)
{
keyb = getch();
if (keyb == 75)/*Left*/
{
drawb(x, y, a, b, arg, 0);
arg -= step;
if (arg < 0)
arg += 360;
drawb(x, y, a, b, arg, 12);
}
else if (keyb == 77)/*Right*/
{
drawb(x, y, a, b, arg, 0);
arg += step;
if (arg > 360)
 arg -= 360;
drawb(x, y, a, b, arg, 12);
}
}
}
}

void drawb(int x, int y, float a, float b, float c, int color)
{
double tempx, tempy;
double x1, y1;
double t;

c = atan(1) / 45 * c;
for (t = -3.1415926535; t <= 3.1415926535; t += 0.003)
{
tempx = cos(t) * a;
tempy = sin(t) * b;
x1 = x + tempx * cos(c) - tempy * sin(c);
y1 = y + tempx * sin(c) + tempy * cos(c);
putpixel(x1, y1, color);
}
}
搜索更多相关主题的帖子: 椭圆 兄弟 
2010-06-15 23:37
快速回复:这个c程序的椭圆不能旋转请高手帮兄弟看一下吧!!!先谢谢了 !!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017247 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved