CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  专题开发/技术/项目 >  游戏开发

计算机图形学!!!(高手请进)

楼主yb_yb(我来学习)2002-04-02 18:09:17 在 专题开发/技术/项目 / 游戏开发 提问

我自己写了一个画圆的函数,但是速率不能满足要求。不知道那位图形学高手能解决之。(不是调系统的函数啊,只能用描点一个个的描)。  
      还有就是画圆弧(条件是给出起点,半径,圆心,旋转角度)。也只能是一个点一个点的描。  
      大家给个算法思路也行!!! 问题点数:100、回复次数:11Top

1 楼yb_yb(我来学习)回复于 2002-04-02 18:10:15 得分 0

 
   
      对了还有一点对圆的填充问题!!!Top

2 楼Hyena_lei(hyena_lei)回复于 2002-04-02 18:34:25 得分 5

用bresenham算法。  
  或者用浮点分8段画,x或y轴增减1的算法Top

3 楼yb_yb(我来学习)回复于 2002-04-02 19:02:01 得分 0

能不能讲一讲bresenham方法。最好是有算法。我这方面没有什么接触。Top

4 楼cris919(lovean)回复于 2002-04-02 19:39:54 得分 5

www.google.com搜索一下Top

5 楼casobug(虫虫)回复于 2002-04-02 21:30:18 得分 70

给你个函数,是画椭圆的,看看有无参考价值:  
  void   Draw_Ellipse(CDC   *pDC,int   x,   int   y,   int   a,   int   b)  
  {  
  int   x1,y1,xt,yt;  
  int   p,pb,pa,temp;  
  float   dab;  
  int   ab=0;  
  if(a<b)  
  {  
  temp=a;  
  a=b;  
  b=temp;  
  ab=1;  
  }  
  if(b==0)   b=1;  
  x1=0;y1=b;  
  pa=a*a;  
  pb=b*b;  
  p=2*pb+pa-2*pa*b;  
  dab=float(pa/pb);  
  while   (x1<dab*y1)  
  {  
  if(ab)  
  {  
  xt=y1;  
  yt=x1;  
  }  
  else  
  {  
  xt=x1;  
  yt=y1;  
  }  
  pDC->SetPixel(x+xt,y+yt,RGB(255,0,0));  
  pDC->SetPixel(x+xt,y-yt,RGB(255,0,0));  
  pDC->SetPixel(x-xt,y+yt,RGB(255,0,0));  
  pDC->SetPixel(x-xt,y-yt,RGB(255,0,0));  
  x1++;  
  if(p<0)  
  {  
  p=p+4*pb*x1+6*pb;  
  }  
  else  
  {  
  p=p+4*pb*x1+6*pb+2*pa*(2-2*y1);  
  y1--;  
  }  
  }  
  x1=a;y1=0;  
  p=2*pa+pb-2*pb*a;  
  while   (x1>dab*y1)  
  {  
  if(ab)  
  {  
  xt=y1;  
  yt=x1;  
  }  
  else  
  {  
  xt=x1;  
  yt=y1;  
  }  
  pDC->SetPixel(x+xt,y+yt,RGB(255,0,0));  
  pDC->SetPixel(x+xt,y-yt,RGB(255,0,0));  
  pDC->SetPixel(x-xt,y+yt,RGB(255,0,0));  
  pDC->SetPixel(x-xt,y-yt,RGB(255,0,0));  
  y1++;  
  if(p<0)  
  {  
  p=p+4*pa*y1+6*pa;  
  }  
  else  
  {  
  p=p+4*pa*y1+6*pa+2*pb*(2-2*x1);  
  x1--;  
  }  
  }  
   
  }Top

6 楼killideadd()回复于 2002-04-03 11:13:27 得分 5

找一下win   api,里边有你要的东西Top

7 楼wangqiqi(polymath)回复于 2002-04-03 12:19:25 得分 5

SetPixel   怎么都快不起来,还是用   CreateDIBSection,然后自己一个一个点的添吧。Top

8 楼yb_yb(我来学习)回复于 2002-04-05 12:52:53 得分 0

这个问题我解决了,用的bresenham算法,但是我不知道其公式的推导过程。有没有会的。Top

9 楼Hyena_lei(hyena_lei)回复于 2002-04-07 17:28:09 得分 5

我这里有一本图形学的书里有,是以前浙大的金廷赞写的《计算机图形学》,你可以去找一下。Top

10 楼Rox_Tu()回复于 2002-04-07 18:28:14 得分 5

你可以看看,清华出的   计算机图形学   ,里面有多种画法。  
  还有你要的圆填充问题!Top

11 楼yb_yb(我来学习)回复于 2002-04-10 19:10:46 得分 0

有没有知道那里有下载这些书的地方?Top

相关问题

  • 求计算机图形学免费的网上学习网站~!
  • 谁有 计算机图形学 的试题,每份100分:
  • 急×××解决一个计算机图形学问题!
  • 急,计算机图形学相关,给100分
  • 博客园计算机图形学团队
  • 推荐一下计算机图形学的书
  • 想买本计算机图形学方面的书,推荐一本for me
  • 哪位知道哪里有《计算机图形学》免费下载?
  • 请大家介绍一些关于计算机图形学的网站(中文)
  • 《计算机图形学》这本书里的程序编译器用什么呀?

关键词

  • 算法
  • 函数
  • yt
  • xt
  • setpixel
  • pdc
  • rgb

得分解答快速导航

  • 帖主:yb_yb
  • Hyena_lei
  • cris919
  • casobug
  • killideadd
  • wangqiqi
  • Hyena_lei
  • Rox_Tu

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

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