求个 点在直线上 的高效算法解决方案

求个 点在直线上 的高效算法
基本情况是这样的:
   数组中记录了一组点的坐标,这些点按先后顺序开成一个封闭的多边形,这个多边形在某一个矩形区内,比如是(0,0)--(400,400),有什么比较好的办法,将这个矩形上的点全部扫描到一个数组中?

   我用的方法是按行和列的顺序扫描(0,0)--(400,400)范围内的每个点,判断当前点是否在多边形的每条线上,但这样很不效率,牛人能否赐教高效算法?

------解决方案--------------------
将这个矩形上的点全部扫描到一个数组中
=======================================
没看明白什么意思。。。

我用的方法是按行和列的顺序扫描(0,0)--(400,400)范围内的每个点,判断当前点是否在多边形的每条线上,但这样很不效率,牛人能否赐教高效算法?
========================================================
为什么不根据直线的起点和斜率计算呢?
------解决方案--------------------
看看windows游戏编程大师技巧这本书,里面详细说了怎样画及填充三角,四边,多边形
------解决方案--------------------
不就是求多边形和矩形交点么
if(x==0 || x ==400 || y==0 || y==400) {
//这就是你要的点
}
------解决方案--------------------
计算几何的问题,可以找这方面的书看看。