LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1081|回复: 8

一道C++的题目(全英文),请高手帮忙解决一下!谢谢!!

[复制链接]
发表于 2003-10-18 11:19:57 | 显示全部楼层 |阅读模式
我目前在国外学习C++,但是由于参考书太贵了,所以有很多问题请高手帮忙。

http://www.cs.uleth.ca/~wismath/cs2620/assign/ass1.pdf

http://www.cs.uleth.ca/~wismath/cs2620/assign/ass2.pdf

第二个链接是我这次的作业,但是和第一次的仍然有关系,所以我把这两个链接一起发上来了。

我的问题在第二个当中,其中有一个叫 drawtriangle 的函数我不会,请教!!
发表于 2003-10-18 12:52:42 | 显示全部楼层
画一个三角形,(a b); (c d) (e f)为坐标定点
感觉可以利用drawline(a,b,c,d, r,g,b)three times.(如果你已经做好drawline函数),
当然,自己重新写也可以.把要画的点(用直线方程,用已经知道的两点得出直线方程)从而把a--b之间的y点
得出每个y点(四舍五入)整数
The drawtriangle(a,b,c,d,e,f, r,g,bb) function已经假定
顶点在buffer区域内了,drawline就没有这个限制.
发表于 2003-10-18 17:40:42 | 显示全部楼层
看到第二简
不是很难
自己做吧

有什么问题上这来问好了
 楼主| 发表于 2003-10-20 07:03:03 | 显示全部楼层

仍然有问题!望高手能详细指点一下。谢谢!

看起来是不难,但是自己亲自做一做呢?我刚刚拿到这份作业也有这种感觉,但是自己一做,傻了。因为我刚刚开始学Class,好多东西还不是很清楚。现在我主要的问题就是:

1.如何定义二维的动态数组?
2.楼上说的画三角形的方法我自己曾经试验过,发现有漏点的情况
发表于 2003-10-20 13:03:24 | 显示全部楼层
1. 二维动态数组 std::vector
2. 你能把 buffertest.cpp 和 sbuffertest.cpp 发上来吗?
没有源程序,不会知道为什么会有漏点
发表于 2003-10-20 13:11:11 | 显示全部楼层
vector< vector>  是完全的二维动态
发表于 2003-10-20 13:15:45 | 显示全部楼层
漏点:
首先将三个顶点整数化
得出两点之间的直线方程
每两顶点之间相间X1,X2(整数)算出对应两个Y1,Y2,
N=Y1-Y2
if N==1
   (X1,Y1) (X2,Y2)添色
else
{
  两个Y1-Y2之间再算Y轴每个间隔的Yn,以及对应的Xn点,
  if Xn-X1<0.5,
  对应的(X1,Yn)就添色,
  else
  (X2,Yn)添色
}
这样就应该没有漏点

动态数组,我不知道,如果语言支持的话,可以查资料.
发表于 2003-10-20 14:47:45 | 显示全部楼层
计算时应该注意一下

如>45度角还有90度、角的情况

如果斜率很大

那么应该改个画法
 楼主| 发表于 2003-10-22 09:12:46 | 显示全部楼层
感谢各位的帮忙,十分感谢!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表