CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

怎样用TC画图

楼主YENNIS(小四)2003-10-02 02:14:48 在 C/C++ / C语言 提问

比如说,随机生成了100个点(小数),怎样把它们连成曲线画在坐标轴上?  
   
  帮忙啊~~~  
   
  感激~~ 问题点数:100、回复次数:31Top

1 楼Wincent(小龙女)回复于 2003-10-02 10:12:12 得分 0

用   putpixel();Top

2 楼simclock(4700uf)回复于 2003-10-02 10:19:02 得分 10

初始化图形模式,然后LINETO(x,y)     不过应该先把坐标取整吧Top

3 楼tolixiaohui()回复于 2003-10-02 10:41:52 得分 0

polyline()?Top

4 楼westxx(西部小星)回复于 2003-10-02 12:15:54 得分 10

先用initgraph(int   *Gdriver,int   *Gmode,char   *dir)初始化,再用line(int   x1,int   y1,int   x2,int   y2)连接各点.  
  当然,你的点要足够多,不然会很难看.  
  函数具体形式最好再查查,我记不太清了.Top

5 楼westxx(西部小星)回复于 2003-10-02 12:20:38 得分 0

忘了一点,最后还要用closegraph()关闭图形模式。Top

6 楼hsyouxishe(金笛玉洁)回复于 2003-10-02 14:13:18 得分 0

调用图形库函数  
  Top

7 楼GhostAdz(鬼斧)回复于 2003-10-02 14:31:59 得分 5

TC有自己的图形库  
  建议去看  
  c高级程序设计         王士元Top

8 楼lyr311(老刘:别总在CSDN上逛!!!)回复于 2003-10-02 15:49:07 得分 5

你看看这个网址,我觉得应该有很多你想要的东西的:  
  http://bbs.icehack.com/wdbread.php?forumid=4&filename=f_129Top

9 楼hu1hao2(huhao)回复于 2003-10-02 15:52:18 得分 10

我也建议你去看C高级程序设计,还有一个很好的tctools,可以加快图形界面的开发.  
  要画图,首先要使用图形模式,然后直接就可以使用函数库了,但每个厂商都有自己的库,所以,你的代码只能在TC下运行.例如:  
        line(   x1,y1,x2,y2)     /*   从点x1,y2   ---点x2,y2   */  
        lineto(x,y)         /*从当前光标点到x,y   点   */  
        putpixer()   等等,这些具体的使用方法,你也可以去下载tc++   3.0,他的帮助文件很详细(在<graphic.h>库中)Top

10 楼mfs(玩命蚂蚁)回复于 2003-10-02 16:00:33 得分 5

去www.tc256.com看看,应该能找到答案Top

11 楼cnxiaohai(相声独一处(回归,为了编程,为了C,为了CSDN))回复于 2003-10-02 20:56:02 得分 5

line(   x1,y1,x2,y2)     /*   从点x1,y2   ---点x2,y2   */  
        lineto(x,y)         /*从当前光标点到x,y   点   */  
   
   
  去学习graphic.hTop

12 楼严黎斌()回复于 2003-10-02 21:01:33 得分 5

用google查以下内容  
  tc   bgi   graphics   initgraph   line   lineto  
  Top

13 楼StepBy(毕业设计中....)回复于 2003-10-02 21:07:37 得分 5

可以下载一个《C语言学习宝典》看看。里面有你想要的很多东西。Top

14 楼qufan(打死不回头)回复于 2003-10-02 21:34:46 得分 0

StepBy(萡萡)   那里有《c语言学习宝典》下载,能不能告诉我地址哦Top

15 楼wxt2301(蓦然回首)回复于 2003-10-02 21:36:13 得分 5

用TC的图形库函数,可参看Turbo   C   大全!Top

16 楼yzf115(枫*无情)回复于 2003-10-02 22:38:46 得分 0

.............我无话可说]  
  Top

17 楼yvhkdragon(剑客)回复于 2003-10-03 23:42:54 得分 5

1》首选得包含"graphics.h"头文件。  
  2》然后再定义显示器类型和驱动。  
  3》初始化驱动器initgraph.  
  下面是一个画圆的例子:  
   
  #include<graphics.h>  
  main()  
  {  
                int   driver=DETECT;         /*     自动搜索驱动         */  
                int   mode;  
                initgraph(&driver,&mode,"");       /*         初始化         */  
                cleardevice();                     /*     清屏   */    
                setcolor(2);                         /*设前景色*/      
                circle(200,200,50);           /*画圆*/  
                colosgraph();                       /*   关闭图形模式     */  
  }Top

18 楼windspeaker()()回复于 2003-10-04 10:37:48 得分 0

偶来完了Top

19 楼locky1982(无情浪子)回复于 2003-10-04 13:35:39 得分 0

看看那些关于画图的函数Top

20 楼zhaochong12(超级大笨鸟)回复于 2003-10-04 13:44:29 得分 0

TC下边有一个*demo.C的文件,是TC下边画图的经典~自己看一下源代码既可~  
  Top

21 楼dellsong(dellsong)回复于 2003-10-04 13:48:41 得分 0

我正在学习阿我还不知道对不起阿Top

22 楼Ahnol(阿诺)回复于 2003-10-04 18:01:41 得分 0

先调用图形库函数(#include   <graphics.h>)  
  再用其中的函数,例如line   ,cirle   之类Top

23 楼YENNIS(小四)回复于 2003-10-04 21:52:31 得分 0

首先感谢大家的支持~~~  
   
  其实书我查过,,例子也看了不少,,  
  可是很少有画随机数的,,  
  这么说吧,  
  它的原理是这样的:每两点画一条弧线,点1和点3画一条,点2和点4画一条,这样确保连贯性;然后还要删除点2和点3之间重复画了的部分。。。。这是书上说的,,但是我还是不会啊。。。。。。。  
  希望大家能给些详细点的建议,,谢谢了~~~Top

24 楼cutestar(猪哥靓)回复于 2003-10-05 16:02:34 得分 0

谁把代码写出来???  
  我也学学!!!Top

25 楼Ark1984()回复于 2003-10-05 23:29:06 得分 5

我这里有个画图的程序:  
  #include   <stdio.h>  
  #include   <dos.h>  
  #include   <graphics.h>  
   
  /*   -----------------                     */  
  #define   ON   1  
  #define   OFF   2  
  #define   LEFTBUTTON 1  
  #define   RIGHTBUTTON 2  
  #define   BOTHBUTTON   3  
   
  int   haveMouse=0;  
   
  int   resetMouse()  
  {  
  union   REGS   r;  
   
  r.x.ax=0;  
  int86(0x33,   &r,   &r);  
  haveMouse=r.x.ax;  
  return   haveMouse==0?   0   :   r.x.bx;  
  }  
   
  void   lightMouse(int   op)  
  { union   REGS   r;  
   
  if   (haveMouse)   {  
  r.x.ax=op;  
  int86(0x33,   &r,&r);  
  }  
  }  
   
  int   getMouseStatus(int   *x,   int   *y)  
  {  
  union   REGS   r;  
   
  if   (haveMouse)   {  
  r.x.ax=3;  
  int86(0x33,   &r,   &r);  
  *x=   r.x.cx;  
  *y=   r.x.dx;  
  return   r.x.bx;  
  }  
  else  
  return   0;  
  }  
   
  void   setMouseXY(int   x,   int   y)  
  {  
  union   REGS   r;  
   
  if   (haveMouse)   {  
  r.x.ax=4;  
  r.x.cx=x;  
  r.x.dx=y;  
  int86(0x33,&r,&r);  
  }  
  }  
   
  void   setMouseRange(int   left,   int   top,   int   right,   int   bottom)  
  {  
  union   REGS   r;  
   
  if   (haveMouse)   {  
  r.x.ax=7;  
  r.x.cx=left;  
  r.x.dx=right;  
  int86(0x33,&r,&r);  
  r.x.ax=8;  
  r.x.cx=top;  
  r.x.dx=bottom;  
  int86(0x33,&r,&r);  
  }  
  }  
   
  /*   -------------     */  
   
  int   mouseIn(int   mx,   int   my,   int   x,   int   y,   int   width,   int   height)  
  {  
  return   (mx>=x)   &&   (mx<x+width)   &&   (my>=y)   &&   (mx<y+height);  
  }  
   
  main()  
  {  
  int   mode=VGAHI;  
  int   driver=VGA;  
  int   color=WHITE;  
  int   fillcolor=WHITE;  
  int   x,y,button,i;  
   
  initgraph(&driver,   &mode,   "c:\tc");  
   
  rectangle(0,429,639,479);  
  moveto(10,440);  
  outtext("Line   Color");  
  moveto(10,460);  
  outtext("Fill   Color");  
  for(i=0;   i<16;   i++){  
  rectangle(100+i*25,435,124+i*25,475);  
  setfillstyle(1,i);  
  bar(101+i*25,436,123+i*25,474);  
  }  
  line(100,455,499,455);  
  moveto(505,440);  
  setcolor(1);  
  outtext("Linewidth:1");  
  bar(600,435,630,455);  
  moveto(505,460);  
  setcolor(2);  
  outtext("Linewidth:3");  
  bar(600,456,630,476);  
  setcolor(WHITE);  
   
  resetMouse();  
  lightMouse(ON);  
   
  while(1)   {  
  button=getMouseStatus(&x,   &y);  
  if   (button==LEFTBUTTON)   {  
  if   (mouseIn(x,y,0,429,639,50))   {  
  if   (mouseIn(x,y,100,435,400,20))   {  
  color=(x-100)/25;  
  setcolor(color);  
  }  
  if   (mouseIn(x,y,100,455,400,20))   {  
  fillcolor=(x-100)/25;  
  setfillstyle(1,fillcolor);  
  }  
  if   (mouseIn(x,y,600,435,30,20))   {  
  setlinestyle(0,0,1);  
  outtext("1");  
  }  
  if   (mouseIn(x,y,600,456,30,20))   {  
  setlinestyle(0,0,3);  
  outtext("3");  
  }  
  /* if   (mouseIn(x,y,550,456,75,14))   {  
  outtext("out");  
  break;  
  }                   */  
  }  
  else   {  
  lightMouse(OFF);  
  lineto(x,y);  
  lightMouse(ON);  
  }  
  }  
  else   if   (button==RIGHTBUTTON)   {  
  lightMouse(OFF);  
  setviewport(0,0,639,428,1);  
  floodfill(x,y,color);  
  setviewport(0,0,639,479,1);  
  lightMouse(ON);  
  }  
  else     if   (button==BOTHBUTTON)  
  break;  
  else   moveto(x,y);  
  }  
  closegraph();  
  }  
  大家帮忙看看,那里能改进。  
   
   
   
    
  Top

26 楼xiaonanln(木月)回复于 2003-10-05 23:37:32 得分 0

晕,能生成EXE,但EXE运行不起来Top

27 楼tuxw(醉书生)回复于 2003-10-05 23:51:55 得分 10

随机生成100个点的坐标,然后按X坐标升序排序  
   
  moveto()   (0,0),   然后依次lineto()下一点,即生成折线图(所有坐是相对于你的坐标轴的,画线时要将它转换成屏幕坐标)  
   
  要生成平滑的曲线比较麻烦,需要相关的算法Top

28 楼CanvasHat(帆布帽)回复于 2003-10-06 00:25:03 得分 5

把生成的数当成参量传到绘图函数中就行了Top

29 楼raysand(古风)回复于 2003-10-06 09:59:26 得分 10

调用图形函数。  
  头文件为   graphics.h  
  具体的操作,自己去看书很容易的  
  #include   <graphics.h>  
  main()  
  {  
  int   mode=VGAHI;  
  int   driver=VGA;  
  int   color=WHITE;  
  int   fillcolor=WHITE;  
  int   x,y,button,i;  
   
  initgraph(&driver,   &mode,   "c:\tc");  
   
  rectangle(0,429,639,479);  
  }  
  Top

30 楼LifeAndC(蓝色忧郁)回复于 2003-10-06 14:25:44 得分 0

上面的初始化不对,应该是  
   
  initgrapt   (   &driver,   &mode,   "c:\\tc\\bgi");  
   
  楼上的,可对?Top

31 楼LifeAndC(蓝色忧郁)回复于 2003-10-06 14:26:43 得分 0

呵呵,打错了,应该是initgraphTop

相关问题

  • @@@@怎样用VB画图?
  • 怎样画图表?
  • 可否用TC开发一个画图程序(简单的)?
  • 怎样用OLE方式调用windows附件画图mspaint.exe
  • turbo c/c++ 中怎样使用1024*768分辨率画图
  • 怎样在Edit中画图?
  • 请教:用户界面上怎样加入gif的动画图片?
  • 用jai画图,怎样实现矩形底色的渐进色?谢谢
  • 想利用C++ BUILDER画图
  • 用asp画图,急急

关键词

  • 图形
  • 函数
  • mx
  • 模式
  • 文件
  • 学习
  • 下载
  • havemouse
  • tc
  • 画图

得分解答快速导航

  • 帖主:YENNIS
  • simclock
  • westxx
  • GhostAdz
  • lyr311
  • hu1hao2
  • mfs
  • cnxiaohai
  • 严黎斌
  • StepBy
  • wxt2301
  • yvhkdragon
  • Ark1984
  • tuxw
  • CanvasHat
  • raysand

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo