亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cad.c

?? Many C samples. It is a good sample for students to learn C language.
?? C
字號:
/* Bai tap 2_87 - Chuong trinh CAD */
#include <stdio.h>
#include <conio.h>
#include <dos.h>
#include <graphics.h>
#include <math.h>
#include "mouse.inc"

#define MAXOBJECTS 100
#define _LINE 0
#define _CIRCLE 1
#define _ELLIPSE 2
#define _RECTANGLE 3
#define _SQUARE 4

typedef struct tagpoint {
  double x, y;
} POINT;

typedef struct tagline {
  int x1, y1, x2, y2;
} LINE;

typedef struct tagcircle {
  int xc, yc, radius;
} CIRCLE;

typedef struct tagellipse {
  int xc, yc, xradius, yradius;
} ELLIPSE;

typedef struct tagrectangle {
  int x1, y1, x2, y2;
} RECTANGLE;

typedef struct tagsquare {
  int x1, y1, x2, y2;
} SQUARE;

struct object {
  int type;
  union tagobj {
    LINE l;
    CIRCLE c;
    ELLIPSE e;
    RECTANGLE r;
    SQUARE s;
  } obj;
} doituong[MAXOBJECTS];

int x, y, i, numobj = 0;
unsigned char lbutton = 0, rbutton = 0;

const char *menu[9] = {
      "Line",
      "Circle",
      "Ellipse",
      "Rectangle",
      "Square",
      "-",
      "Save",
      "-",
      "Quit"
      };


void getmouse()
{
  do {
    get_mouse_button(&lbutton, &rbutton, &x, &y);
  } while (lbutton == 0 && rbutton == 0);
}

void clearmouse()
{
  while (lbutton || rbutton)
    get_mouse_button(&lbutton, &rbutton, &x, &y);
}

void message(char *s)
{
  struct viewporttype view;
  int color = getcolor();
  setcolor(BLACK);
  setfillstyle(SOLID_FILL, BLACK);
  getviewsettings(&view);
  setviewport(0, 0, getmaxx(), getmaxy(), 1);
  bar(1, getmaxy()-19, getmaxx() - 101, getmaxy()-2);
  setcolor(WHITE);
  outtextxy(4, getmaxy() - 12, s);
  setcolor(color);
  setviewport(view.left, view.top, view.right, view.bottom, view.clip);
}

void Line()
{
  int x1, y1, oldx,  oldy;
  message("Nhap chuot de chon hai diem dau mut de ve LINE");
  clearmouse();
  getmouse();
  oldx = x1 = x;
  oldy = y1 = y;
  setwritemode(XOR_PUT);
  setcolor(YELLOW);
  clearmouse();
  do {
    get_mouse_button(&lbutton, &rbutton, &x, &y);
    if (lbutton == 0 && rbutton == 0)
    {
      if (oldx != x || oldy != y)
      {
        hide_mouse();
        line(x1, y1, oldx, oldy);
        oldx = x;
        oldy = y;
        line(x1, y1, oldx, oldy);
        show_mouse();
      }
    }
  } while (lbutton == 0 && rbutton == 0);
  doituong[numobj].type = _LINE;
  doituong[numobj].obj.l.x1 = x1;
  doituong[numobj].obj.l.y1 = y1;
  doituong[numobj].obj.l.x2 = x;
  doituong[numobj].obj.l.y2 = y;
  numobj++;
  clearmouse();
  setwritemode(COPY_PUT);
}

void Circle()
{
  int x1, y1, radius, oldx, oldy;
  message("Nhap chuot de chon tam va hai ban kinh de ve ELLPISE");
  clearmouse();
  getmouse();
  oldx = x1 = x;
  oldy = y1 = y;
  setwritemode(XOR_PUT);
  circle(x1, y1, abs(oldx-x1));
  clearmouse();
  do {
    get_mouse_button(&lbutton, &rbutton, &x, &y);
    if (lbutton == 0 && rbutton == 0)
    {
      if (oldx != x || oldy != y)
      {
        hide_mouse();
        setcolor(BLACK);
        circle(x1, y1, abs(oldx-x1));
        oldx = x;
        oldy = y;
        setcolor(RED);
        circle(x1, y1, abs(oldx-x1));
        show_mouse();
      }
    }
  } while (lbutton == 0 && rbutton == 0);
  doituong[numobj].type = _CIRCLE;
  doituong[numobj].obj.c.xc = x1;
  doituong[numobj].obj.c.yc = y1;
  doituong[numobj].obj.c.radius = abs(oldx-x1);
  numobj++;
  clearmouse();
  setwritemode(COPY_PUT);
}

void Ellipse()
{
  int x1, y1, xradius, yradius, oldx, oldy;
  message("Nhap chuot de chon tam va ban kinh de ve CIRCLE");
  clearmouse();
  getmouse();
  oldx = x1 = x;
  oldy = y1 = y;
  setwritemode(XOR_PUT);
  ellipse(x1, y1, 0, 360, abs(oldx-x1), abs(oldy-y1));
  clearmouse();
  do {
    get_mouse_button(&lbutton, &rbutton, &x, &y);
    if (lbutton == 0 && rbutton == 0)
    {
      if (oldx != x || oldy != y)
      {
        hide_mouse();
        setcolor(BLACK);
        ellipse(x1, y1, 0, 360, abs(oldx-x1), abs(oldy-y1));
        oldx = x;
        oldy = y;
        setcolor(GREEN);
        ellipse(x1, y1, 0, 360, abs(oldx-x1), abs(oldy-y1));
        show_mouse();
      }
    }
  } while (lbutton == 0 && rbutton == 0);
  doituong[numobj].type = _ELLIPSE;
  doituong[numobj].obj.e.xc = x1;
  doituong[numobj].obj.e.yc = y1;
  doituong[numobj].obj.e.xradius = abs(oldx-x1);
  doituong[numobj].obj.e.yradius = abs(oldy-y1);
  numobj++;
  clearmouse();
  setwritemode(COPY_PUT);
}

void Rectangle()
{
  int x1, y1, oldx,  oldy;
  message("Nhap chuot de chon hai diem dau mut de ve LINE");
  clearmouse();
  getmouse();
  oldx = x1 = x;
  oldy = y1 = y;
  setwritemode(XOR_PUT);
  setcolor(WHITE);
  clearmouse();
  do {
    get_mouse_button(&lbutton, &rbutton, &x, &y);
    if (lbutton == 0 && rbutton == 0)
    {
      if (oldx != x || oldy != y)
      {
        hide_mouse();
        rectangle(x1, y1, oldx, oldy);
        oldx = x;
        oldy = y;
        rectangle(x1, y1, oldx, oldy);
        show_mouse();
      }
    }
  } while (lbutton == 0 && rbutton == 0);
  doituong[numobj].type = _RECTANGLE;
  doituong[numobj].obj.r.x1 = x1;
  doituong[numobj].obj.r.y1 = y1;
  doituong[numobj].obj.r.x2 = x;
  doituong[numobj].obj.r.y2 = y;
  numobj++;
  clearmouse();
  setwritemode(COPY_PUT);
}

void Square()
{
  int x1, y1, oldx,  oldy;
  message("Nhap chuot de chon hai diem dau mut de ve SQUARE");
  clearmouse();
  getmouse();
  oldx = x1 = x;
  oldy = y1 = y;
  setwritemode(XOR_PUT);
  setcolor(BLUE);
  clearmouse();
  do {
    get_mouse_button(&lbutton, &rbutton, &x, &y);
    if (lbutton == 0 && rbutton == 0)
    {
      if (oldx != x || oldy != y)
      {
        hide_mouse();
        if (oldx-x1 >= oldy-y1)
          rectangle(x1, y1, oldx, oldx-x1+y1);
        else
          rectangle(x1, y1, oldy-y1+x1, oldy);
        oldx = x;
        oldy = y;
        if (oldx-x1 >= oldy-y1)
          rectangle(x1, y1, oldx, oldx-x1+y1);
        else
          rectangle(x1, y1, oldy-y1+x1, oldy);
        show_mouse();
      }
    }
  } while (lbutton == 0 && rbutton == 0);
  doituong[numobj].type = _SQUARE;
  doituong[numobj].obj.s.x1 = x1;
  doituong[numobj].obj.s.y1 = y1;
  if (oldx-x1 >= oldy-y1)
  {
    doituong[numobj].obj.s.x2 = oldx;
    doituong[numobj].obj.s.y2 = oldx-x1+y1;
  }
  else
  {
    doituong[numobj].obj.s.x2 = oldy-y1+x1;
    doituong[numobj].obj.s.y2 = oldy;
  }
  numobj++;
  clearmouse();
  setwritemode(COPY_PUT);
}

void UpdateScreen()
{
  int i;
  setviewport(1, 1, getmaxx() - 101, getmaxy() - 21, 1);
  clearviewport();
  for (i=0; i<numobj; i++)
    switch (doituong[i].type)
    {
      case _LINE : setcolor(YELLOW);
                   line(doituong[i].obj.l.x1, doituong[i].obj.l.y1,
                        doituong[i].obj.l.x2, doituong[i].obj.l.y2);
                   break;
      case _CIRCLE : setcolor(RED);
                   circle(doituong[i].obj.c.xc, doituong[i].obj.c.yc,
                        doituong[i].obj.c.radius);
                   break;
      case _ELLIPSE : setcolor(GREEN);
                   ellipse(doituong[i].obj.e.xc, doituong[i].obj.e.yc, 0, 360,
                        doituong[i].obj.e.xradius, doituong[i].obj.e.yradius);
                   break;
      case _RECTANGLE : setcolor(WHITE);
                   rectangle(doituong[i].obj.r.x1, doituong[i].obj.r.y1,
                        doituong[i].obj.r.x2, doituong[i].obj.r.y2);
                   break;
      case _SQUARE : setcolor(BLUE);
                   rectangle(doituong[i].obj.s.x1, doituong[i].obj.s.y1,
                        doituong[i].obj.s.x2, doituong[i].obj.s.y2);
                   break;
    }
  setviewport(0, 0, getmaxx(), getmaxy(), 1);
}

void Save()
{
  const char filename[] = "CAD.DAT";
  FILE *fp;
  int i;

  if ((fp=fopen(filename, "w+b")) == NULL)
  {
    message("Khong the tao tap tin CAD.DAT");
    return;
  }
  fwrite(doituong, sizeof(struct object), numobj, fp);
  fclose(fp);
}

void run()
{
  int done = 0, i;
  do {
    getmouse();
    if (x >= getmaxx() - 90)
    {
      i = (y - 20) / 16;
      setviewport(1, 1, getmaxx() - 101, getmaxy() - 21, 1);
      switch (i)
      {
        case 0 : Line();
                 break;
        case 1 : Circle();
                 break;
        case 2 : Ellipse();
                 break;
        case 3 : Rectangle();
                 break;
        case 4 : Square();
                 break;
        case 6 : Save();
                 break;
        case 8 : done = 1;
                 break;
      }
      setviewport(0, 0, getmaxx(), getmaxy(), 1);
      UpdateScreen();
    }
    else
    {
    }
    clearmouse();
  } while (!done);
}

void main()
{
  int gr_drive = DETECT, gr_mode;

  initgraph(&gr_drive, &gr_mode, "");
  reset_mouse();
  show_mouse();
  setcolor(YELLOW);
  rectangle(0, 0, getmaxx(), getmaxy());
  line(getmaxx() - 100, 0, getmaxx() - 100, getmaxy());
  line(0, getmaxy()-20, getmaxx() - 100, getmaxy()-20);
  for (i=0; i<9; i++)
    if (strcmp(menu[i], "-") == 0)
      line(getmaxx() - 90, 20 + i * 16, getmaxx() - 20, 20 + i * 16);
    else
      outtextxy(getmaxx() - 90, 20 + i * 16, menu[i]);
  show_mouse();
  run();
  closegraph();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
婷婷一区二区三区| 欧美久久一二区| 亚洲人成网站在线| 日韩国产成人精品| 亚洲国产你懂的| 国产精品免费视频观看| 欧美另类变人与禽xxxxx| 99久久99久久精品免费观看| 美女视频一区二区三区| 亚洲欧美日本韩国| 一本一本大道香蕉久在线精品| 激情深爱一区二区| 亚洲综合色在线| 久久久久久一二三区| 国产精品久久福利| 亚洲主播在线播放| 亚洲欧美影音先锋| 国产亚洲综合色| aaa欧美日韩| 国产一区二区三区在线观看免费| 怡红院av一区二区三区| 欧美韩国一区二区| 久久久亚洲综合| 久久免费看少妇高潮| 7777精品久久久大香线蕉| 国产日产欧美一区| 久久久久久久久久久黄色| 精品国产露脸精彩对白| 日韩一级在线观看| 欧美激情综合五月色丁香 | 久久成人免费网| 亚洲综合激情另类小说区| 中文字幕在线观看不卡| 中日韩av电影| 久久久亚洲午夜电影| 久久亚洲精华国产精华液 | 国产视频一区二区在线| 久久久蜜桃精品| 久久久久88色偷偷免费| 91精品国产综合久久香蕉的特点| 欧洲一区二区三区在线| 在线观看日韩高清av| 欧美日韩精品欧美日韩精品| 26uuu国产电影一区二区| 日韩精品专区在线影院重磅| 欧美一二三四区在线| 亚洲欧洲日韩在线| 亚洲一区二区三区视频在线播放 | 国产欧美一区二区精品性色超碰| 欧美午夜不卡视频| 在线播放亚洲一区| 久久夜色精品国产欧美乱极品| 日韩欧美国产wwwww| 久久亚洲精品国产精品紫薇| www.欧美亚洲| 欧美视频中文字幕| 色吊一区二区三区| 国产情人综合久久777777| 国产精品情趣视频| 亚洲电影一级黄| 色呦呦一区二区三区| 欧美性猛交xxxx黑人交| 精品国产免费视频| 免费精品视频最新在线| 激情欧美一区二区三区在线观看| 波多野洁衣一区| 欧美亚洲尤物久久| 亚洲精品国产成人久久av盗摄 | 男人操女人的视频在线观看欧美| 国产精品18久久久久| 国产成人在线免费| 欧美日韩精品久久久| 一二三四区精品视频| 蜜桃视频免费观看一区| 成人丝袜高跟foot| 亚洲女人的天堂| 国产永久精品大片wwwapp| 99久久99久久精品免费观看| 日韩欧美国产三级电影视频| 另类的小说在线视频另类成人小视频在线| 国产成人av电影| 日韩视频123| 日韩欧美高清一区| 亚洲午夜在线电影| www.在线成人| 精品成人佐山爱一区二区| 国产一区二区福利| 日韩视频在线永久播放| 亚洲男人的天堂av| 欧美综合久久久| 一区二区三区四区在线| 丰满白嫩尤物一区二区| 欧美三级电影精品| 亚洲欧美日韩中文字幕一区二区三区| 韩国毛片一区二区三区| 在线观看一区二区精品视频| 亚洲一线二线三线久久久| 国产在线视频不卡二| 欧美无乱码久久久免费午夜一区 | 99久久精品免费观看| 欧美乱妇23p| 亚洲精品水蜜桃| 99精品国产视频| 18欧美亚洲精品| 国产精品18久久久久| 欧美国产日产图区| 久久99国内精品| 久久久综合视频| 欧美精品久久99久久在免费线| 日本三级亚洲精品| 欧美日韩精品福利| 亚洲高清一区二区三区| 日韩精品一区二区三区四区| 老司机精品视频线观看86| 日韩午夜精品视频| 一区二区三区中文在线观看| 成人一级片在线观看| av成人免费在线| 亚洲图片欧美色图| 欧美日韩综合在线免费观看| 日韩一区在线免费观看| 日韩欧美亚洲国产精品字幕久久久| 日韩专区一卡二卡| 欧美久久久久久蜜桃| www.日韩大片| 亚洲欧美国产77777| 色欧美片视频在线观看在线视频| 欧美精品一区男女天堂| 午夜精品福利一区二区三区av| 日韩一区二区在线观看| 国产亚洲午夜高清国产拍精品| 欧美中文字幕亚洲一区二区va在线| 亚洲一区二区视频在线| 精品欧美一区二区久久| 成人动漫av在线| 亚洲精品美国一| 欧美mv和日韩mv国产网站| 欧美日韩一区二区三区四区| 免费人成精品欧美精品 | 亚洲线精品一区二区三区| 日韩一区二区视频在线观看| 国产制服丝袜一区| 国产欧美一区二区在线观看| 91欧美激情一区二区三区成人| 国产一区999| 亚洲成a人在线观看| 国产女同互慰高潮91漫画| 精品久久久三级丝袜| 99久久99精品久久久久久| 石原莉奈在线亚洲三区| 亚洲国产精品视频| 中文字幕第一区综合| 欧美日韩免费不卡视频一区二区三区| 成人黄色国产精品网站大全在线免费观看 | 亚洲免费av观看| 日韩欧美高清dvd碟片| 91丨porny丨首页| 欧美日韩一区三区四区| 99精品欧美一区二区三区小说 | 26uuu国产日韩综合| 日韩三区在线观看| 99视频在线精品| 国产一区二区视频在线| 国产乱国产乱300精品| 夜夜嗨av一区二区三区| 精品久久久久久久一区二区蜜臀| 中文字幕在线不卡视频| 国产精品久久久久一区二区三区 | 99久久99久久精品国产片果冻 | 色狠狠一区二区| 欧美亚日韩国产aⅴ精品中极品| 丁香婷婷综合色啪| 国产精品夜夜嗨| 亚洲超碰精品一区二区| 亚洲人成精品久久久久久| www成人在线观看| 91精品久久久久久久91蜜桃| 精品久久久久久无| 日韩欧美一区二区免费| 日韩女同互慰一区二区| 国产午夜精品一区二区三区嫩草| 337p粉嫩大胆色噜噜噜噜亚洲| 欧美一区二区三区在线电影| 久久综合色综合88| 久久久www成人免费无遮挡大片| 日韩欧美国产三级电影视频| 国产精品天天摸av网| 久久九九99视频| 国产亚洲婷婷免费| 韩国v欧美v亚洲v日本v| 看电影不卡的网站| 国产精品一区在线| 国产99精品国产| 日本久久一区二区| 91成人网在线| 日本在线不卡视频一二三区| 午夜a成v人精品| 91福利在线免费观看| 国产精品久久久久影院色老大| 久久国产福利国产秒拍|