C图形程序生成静态输出

时间:2015-12-22 14:50:00

标签: c graphics turbo-c

我写了一个简单的代码来旋转一条线。以下是源代码:

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<math.h>
#include<graphics.h>
  void main(){
  int gd=DETECT, gm;
  int x1, y1, x2, y2, t, deg, b1, b2;
  initgraph(&gd,&gm,"c:\\tc\\bgi");
  printf("Enter coordinates of line: ");
  scanf("%d %d %d %d",&x1,&y1,&x2,&y2);
  printf("Enter angle of rotation: ");
  scanf("%d",&deg);
  line(x1, y1, x2, y2);
  getch();
  t = (22*deg)/(180*7);
  b1 = cos(t)*x1 - sin(t)*y1;
  b2 = cos(t)*x1 + sin(t)*y1;
  line(x1,y1,b1,b2);
  getch();
  closegraph();
}

问题是它会产生一些静态输出,并且不会根据给定的输入旋转线。对于任何值deg变量,旋转的线几乎相似。

输出: enter image description here enter image description here

1 个答案:

答案 0 :(得分:1)

您的变量tint,但三角函数需要floatdouble s。

所以如果你声明:

int x1, y1, x2, y2, deg, b1, b2;
float t;

它应该工作。 您的计划可能存在更多问题。

BTW:给你的变量一些明显的名字,例如: angle代替t.

你从度数到弧度的转换也有点笨拙,因为22/7是PI的粗略近似值:

t = (22*deg)/(180*7);

使用这个:

t = 3.1415926 * deg / 180

甚至只是这个(如果在math.h包含文件中声明了PI)

t = PI * deg / 180