| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 475 人关注过本帖
标题:求高手解决c画直线代码,不能执行~
只看楼主 加入收藏
火男
Rank: 1
等 级:新手上路
帖 子:37
专家分:3
注 册:2010-12-3
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:5 
求高手解决c画直线代码,不能执行~
#include"graphics.h"
void MidpointLine(int x0,int y0,int x1,int y1,int color)//中点画直线函数
{
    int a,b,dalte1,dalte2,d,x,y;
    a=y0-y1;
    b=x1-x0;
    dalte1=a+a;
    dalte2=a+a+b+b;
    d=a+a+b;
    x=x0;
    y=y0;
    putpixel(x,y,color);
    while(x0<x1)
    {
        if(d<0)//点在直线下,取右上方的点,x+1,y+1
        {
            x++;
            y++;
            d+=dalte2;
        }
        else//点在直线下,去右方的点,x+1,y不变
        {
            x++;
            d+=dalte1;
        }
    }
    putpixel(x,y,color);
}
int main()
{
int graphdriver=DETECT;
int graphmode=0;
initgraph(&graphdriver,&graphmode,"正方形 ");
MidpointLine(10,20,20,25,2);
getch();
closegraph();
return 0;
}
搜索更多相关主题的帖子: 代码 直线 
2010-12-12 15:30
ml232528
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:367
专家分:879
注 册:2007-7-23
收藏
得分:0 
#include"graphics.h" 这个头文件是自己写的?

-︻┻┳═一 ☆ 悲伤的代价就是让自己明白什么是最重要的和应该珍惜的
2010-12-12 15:38
wujieru
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:1
帖 子:1108
专家分:1939
注 册:2010-10-9
收藏
得分:0 
#include"graphics.h"  是C的头文件
2010-12-12 15:47
wujieru
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:1
帖 子:1108
专家分:1939
注 册:2010-10-9
收藏
得分:0 
initgraph(&graphdriver,&graphmode,"正方形 ");  这句不能执行
可以用DOSBOX模拟DOS环境
2010-12-12 15:48
火男
Rank: 1
等 级:新手上路
帖 子:37
专家分:3
注 册:2010-12-3
收藏
得分:0 
谢谢,这个模板是找的,void MidpointLine换成
void linedda(int x0,int y0,int x1,int y1,int color)
{
int x,dy,dx,y;
float m;
dx=x1-x0;
dy=y1-y0;
m=dy/dx;
y=y0;
for (x=x0;x<=x1;x++)
{
putpixel(x,(int)(y+0.5),color);
y+=m;
}
}
就能执行
不知为什么
2010-12-12 23:27
xiaomarn
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:348
专家分:2026
注 册:2009-3-18
收藏
得分:5 
程序代码:
#include"graphics.h"
void MidpointLine(int x0,int y0,int x1,int y1,int color)
{
    int a,b,dalte1,dalte2,d,x,y;
    a=y0-y1;
    b=x1-x0;
    dalte1=a+a;
    dalte2=a+a+b+b;
    d=a+a+b;
    x=x0;
    y=y0;
    putpixel(x,y,color);
    while(x0<x1)
    {
        if(d<0)
        {
            x++;
            y++;
            d+=dalte2;
        }
        else
        {
            x++;
            d+=dalte1;
        }
      x0++;
      putpixel(x,y,color);
      }
}
int main()
{
int graphdriver=DETECT;
int graphmode=0;
initgraph(&graphdriver,&graphmode,"d:\\win-tc\\projects");
MidpointLine(10,20,400,300,2);
getch();
closegraph();
return 0;
} 

2010-12-13 20:39
快速回复:求高手解决c画直线代码,不能执行~
数据加载中...
 
   



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

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