Tsinghua_shi
路人甲
路人甲
  • 注册日期2006-02-28
  • 发帖数7
  • QQ
  • 铜币126枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:4842回复:9

[原创]几何模板库(刚刚完成,各位看看有什么缺陷)

楼主#
更多 发布于:2006-05-12 11:34
<P>// --------------------几何模板库-----------------------<BR>// 作者    : Tsinghua<BR>// 版本    : Ver 1.0.0.0<BR>// 最后修改: 2006.5.12<BR>/* <BR>0.声明<BR>  1.本模板采用的坐标系为:正右为x+,正上为y+</P>
<P>1.内容<BR>  1.几何类:点,线段,直线,圆,三角形,多边形,链,矩形<BR>  2.工具类:缓冲区构造</P>
<P>2.点方法:<BR>  1 返回GeoType(点)<BR>  2 构造函数 -- 多个<BR>  3 重载 =  <BR>  4 重载 == ,!=<BR>  5 与另外一个点的距离,返回double型<BR>  6 判断与另外一个点是否是同一个点(容差返回内)<BR>  7 求点 p1_p_p2 三点的夹角<BR>  8 求点 (p1-p0)*(p2-p0) 的叉积</P>
<P>3.线段方法:<BR>  1 返回GeoType(线段)<BR>  2 构造函数 -- 多个<BR>  3 重载 =<BR>  4 点是否在线段上<BR>  5 得到线段的中点<BR>  6 得到该线段的直线<BR>  7 得到线段的长度<BR>  8 判断与另外一条线段的位置关系(相交,不相交,完全重合,部分叠交)<BR>  9 求俩条线段的夹角余弦值<BR>  10点到线段的最短距离</P>
<P>4.直线方法:<BR>  1 返回GeoType(直线)<BR>  2 构造函数 -- 多个 (支持俩个点构造一条直线)<BR>  3 重载=<BR>  4 点是否在直线上<BR>  5 线段是否在直线上<BR>  6 俩个点是否在直线的同一侧<BR>  7 得到该直线与正向X轴之间的夹角<BR>  8 点到直线的距离<BR>  9 与另一条直线的关系(相交,平行,重合)<BR>  10与另一条线段的关系(有交点,无交点,线段在直线上)<BR>  11与另一条直线的夹角弧度<BR>  12求得已知点关于该直线的对称点<BR>  13判断与直线是否相交<BR>  14求得过指定点,与该直线的垂线</P>
<P>5.圆的方法<BR>  1 返回GeoType(圆)<BR>  2 构造函数 --  多个(支持三点确定一个圆)<BR>  3 重载 =,==,!=<BR>  4 得到面积<BR>  5 得到周长<BR>  6 半径膨胀<BR>  7 重新指定半径<BR>  8 判断一个点与圆的位置关系(圆内,圆外,圆上)<BR>  9 指定x值,得到俩个y值<BR>  10指定y值,得到俩个x值<BR>  11指定角度,得到圆上一个点<BR>  12指定个数n,等距获得圆上的n个点<BR>  13指定角度,得到与圆相交的一个线段<BR>  14计算俩个圆的关系:相离,外切,相交,内切,内含<BR>  15两圆交点(前提:保证俩个圆已经相交或者相切)<BR>  16两个圆的公共面积<BR>  17确定圆和直线的关系(相离,相交,相切)<BR>  18过圆外一点,求该点和圆的切点(前提:该点必须在圆外)<BR>  19矩形是否在圆内</P>
<P>6.三角形方法<BR>  1 返回GeoType(三角形)<BR>  2 构造函数 --多个<BR>  3 得到面积<BR>  4 得到周长<BR>  5 判断三角形类型(钝角,直角,锐角)<BR>  6 得到三角形最大的一个角度<BR>  7 得到三角形最小的一个角度<BR>  8 得到最长的一条边线段<BR>  9 得到最短的一条边线段<BR>  10判断是否等腰三角形<BR>  11判断是否等边三角形<BR>  12点是否在三角形内<BR>  13点到三角形的最短距离<BR>  14外接圆<BR>  15内切圆<BR>  16分别求得三个角的角平分线</P>
<P>7.矩形方法<BR>  1 返回GeoType(矩形)<BR>  2 构造函数--多个<BR>  3 重载 =,==,!=<BR>  4 得到高度,宽度<BR>  5 得到左上点,左下点,右下点,右上点<BR>  6 得到中间点<BR>  7 重新设置参数<BR>  8 重新设置参数为空<BR>  9 判断矩形是否为空<BR>  10参数格式化,使之上>下,右>左<BR>  11点是否在矩形内(包括在矩形上)<BR>  12线段是否在矩形内<BR>  13圆是否在矩形内<BR>  14点到矩形的最短距离<BR>  15外接圆<BR>  16内切圆</P>
<P>8.多边形方法<BR>  1 返回GeoType(多边形)<BR>  2 构造函数 -- 多个<BR>  3 在顶点序列的最后一个位置插入一个点<BR>  4 在顶点序列的指点位置插入一个点<BR>  5 分别得到最小的x,最大的x,最小的y,最大的y<BR>  6 得到顶点数目<BR>  7 得到面积<BR>  8 得到周长 <BR>  9 得到顶点的算术平均值<BR>  10指定点,得到该点在顶点序列中的位置编号<BR>  11根据编号返回顶点<BR>  12判断点是否在多边形内<BR>  13判断线段是否在多边形内<BR>  14判断直线是否穿透多边形<BR>  15删除指定顶点序号的顶点<BR>  16删除指定顶点<BR>  17判断该多边形是否简单多边形<BR>  18检查多边形各个顶点的凸凹性判断<BR>  19检查多边形是否是凸多边形<BR>  20检查顶点的顺序是否是逆时针<BR>  21找出一个在多边形内部的点(前提:该多边形为一个简单多边形)</P>
<P>9.链方法:<BR>  1 返回GeoType(链)<BR>  2 构造函数 -- 多个<BR>  3 点集的最后一个位置插入一个点<BR>  4 返回首点<BR>  5 返回尾点<BR>  6 删除首点<BR>  7 删除尾点<BR>  8 得到第index个顶点<BR>  9 得到第index个子线段<BR>  10指定位置插入顶点<BR>  11判断链是否为空<BR>  12删除指定点<BR>  13点是否在链上<BR>  14线段与链是否有交点<BR>  15该链的凸包多边形<BR>  16另外一个链加入本链中(注:没有检查增加后链的自交情况)</P>
<P>10.几何形状缓冲 <BR> 1 点缓冲<BR>  1.1 8点缓冲<BR>  1.2 16点缓冲<BR>  1.3 x点缓冲<BR> 2 线段缓冲<BR>  2.1 圆头6点缓冲<BR>  2.2 圆头x点缓冲<BR> 3 链缓冲<BR>  3.1 端点圆头6点缓冲<BR>  3.2 端点圆头x点缓冲<BR>*/<BR>// -----------------------------------------------------</P>
喜欢0 评分0
Tsinghua_shi
路人甲
路人甲
  • 注册日期2006-02-28
  • 发帖数7
  • QQ
  • 铜币126枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2006-05-12 11:35
如果完善了的话,会公布代码,各路大侠一起来发展它
举报 回复(0) 喜欢(0)     评分
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15945
  • QQ554730525
  • 铜币25337枚
  • 威望15352点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
2楼#
发布于:2006-05-15 12:22
<P>期待楼主完善以及更多功能,对很多朋友应该会有很大帮助</P>
<P>希望大家更进一步讨论</P>
举报 回复(0) 喜欢(0)     评分
comeasur
路人甲
路人甲
  • 注册日期2006-08-29
  • 发帖数16
  • QQ
  • 铜币128枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2006-08-30 10:15
3个月过去了,不知道楼主进行得怎么样了?
举报 回复(0) 喜欢(0)     评分
whmwxhanshan123
路人甲
路人甲
  • 注册日期2006-06-17
  • 发帖数3108
  • QQ
  • 铜币6445枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2006-08-30 19:49
怎么样了?<img src="images/post/smile/dvbbs/em04.gif" /><img src="images/post/smile/dvbbs/em01.gif" />
举报 回复(0) 喜欢(0)     评分
yinliang
路人甲
路人甲
  • 注册日期2006-12-22
  • 发帖数1
  • QQ
  • 铜币103枚
  • 威望0点
  • 贡献值0点
  • 银元0个
5楼#
发布于:2007-01-30 10:03
不知楼主的模版怎么样啦
举报 回复(0) 喜欢(0)     评分
csuhkx
路人甲
路人甲
  • 注册日期2004-05-23
  • 发帖数66
  • QQ
  • 铜币274枚
  • 威望0点
  • 贡献值0点
  • 银元0个
6楼#
发布于:2007-05-15 08:56
<P>好东西啊,非常有用</P>
举报 回复(0) 喜欢(0)     评分
csuhkx
路人甲
路人甲
  • 注册日期2004-05-23
  • 发帖数66
  • QQ
  • 铜币274枚
  • 威望0点
  • 贡献值0点
  • 银元0个
7楼#
发布于:2007-05-15 08:57
<P>好东西啊,非常有用</P>
举报 回复(0) 喜欢(0)     评分
phoenix
路人甲
路人甲
  • 注册日期2004-09-15
  • 发帖数17
  • QQ
  • 铜币133枚
  • 威望0点
  • 贡献值0点
  • 银元0个
8楼#
发布于:2007-08-04 14:12
<P>感谢楼主分享,</P><img src="images/post/smile/dvbbs/em01.gif" /><img src="images/post/smile/dvbbs/em02.gif" /><img src="images/post/smile/dvbbs/em05.gif" /><img src="images/post/smile/dvbbs/em04.gif" /><img src="images/post/smile/dvbbs/em08.gif" />
道法自然 天行健,君子以自强不息。 地势坤,君子以厚德载物。
举报 回复(0) 喜欢(0)     评分
jinyu1123
路人甲
路人甲
  • 注册日期2006-07-05
  • 发帖数67
  • QQ
  • 铜币262枚
  • 威望0点
  • 贡献值0点
  • 银元0个
9楼#
发布于:2007-11-22 20:23
<P>谢了!</P>
迷茫啊! Email : jinyu1123@163.com.
举报 回复(0) 喜欢(0)     评分
游客

返回顶部