- 浏览: 115544 次
- 性别:
- 来自: 南京
文章分类
- 全部博客 (135)
- java (135)
- [转]c# 画圆角矩形 (1)
- 设计模式生活实例 (1)
- .nET2.0小技巧 (1)
- 从另一个角度看敏捷实践(一)--IPM:承诺的仪式 (1)
- javascript字符串转json对象 (1)
- 使用BeanUtils时,Date类型值为空的解决方法 (1)
- Lenovo V460+Ubuntu 11.10 无线网问题 (1)
- Lucene 索引和搜索过程核心类详解 (1)
- Android短信编解码方式 (1)
- 股神巴菲特十大致富秘籍 (1)
- Map遍历的三种方法 (1)
- Android中用Toast.cancel()方法优化toast内容的显示 (1)
- ViewFlipper “Receiver not registered” Error (1)
- javax.xml.transform.TransformerFactoryConfigurationError (1)
- JNI调用的注意事项 (1)
- JUnit单元测试感悟 (1)
- 用C#写定时关机的程序 (1)
- ASP.NET开发工具Web Matrix介绍 (1)
- MapXtreme2004代码 MapControl控件中显示地图文件 (1)
- 《使用 Microsoft .NET 的企业解决方案模式》读书笔记3 (1)
- 微创短信开发平台 (1)
- 谈谈Q+平台的技术实现 (1)
- 手机防盗软件实现(源码) (1)
- 虚析构函数(总结 帖子) (1)
- c语言中去除const修饰 (1)
- ORA-01012: not logged on 解决办法 (1)
- paypal提现如何省钱 (1)
- 数独suduku (1)
- MyISAM InnoDB 区别 (1)
- 随 笔 (1)
- Android上的log,日志相关 (1)
- 百度质量部实习居然通过了~ (1)
最新评论
-
野狐禅:
ext.get('imagebrowse') is null
ExtJs上传图片预览功能 -
zhuyl_wind:
不切实际,呵呵
[]5年内买车买房-理财篇 -
in南京:
关键你那两千块钱就够交一个多月的房租!换个城市你那六百也远远不 ...
[]5年内买车买房-理财篇 -
javac_xinyun:
呵呵,看完了,确实不错,貌似第一年的房租每月算进去 ,人际关系 ...
[]5年内买车买房-理财篇 -
dishikun:
貌似很不错,就是没把房租算进去!
[]5年内买车买房-理财篇
下面的代码需要box2d!!!!!!!!!!!
import org.jbox2d.common.vec2;
public class polyonutil {<br> private static polyonutil instance;<br> private float a;<br> private float b;<br> private boolean x_axis;<br> private boolean y_axis;<br> private float axis;<br> float i;
public static polyonutil getinstance() {<br> if (instance == null) {<br> instance = new polyonutil();<br> }<br> return instance;<br> }
public void setab(vec2 point1, vec2 point2) {<br> if (point1.x == point2.x) {<br> if (point1.y != point2.y) {<br> y_axis = true;<br> axis = point1.x;<br> }<br> } else if (point1.y == point2.y) {<br> if (point1.x != point2.x) {<br> x_axis = true;<br> axis = point1.y;<br> }<br> } else {<br> y_axis = false;<br> x_axis = false;<br> a = (point1.y - point2.y) / (point1.x - point2.x);<br> b = point1.y - point1.x * a;<br> }<br> }
public byte getflag(vec2 point) {<br> if (y_axis) {<br> if (point.x > axis) {<br> return 1;<br> } else if (point.x < axis) {<br> return -1;<br> } else {<br> return 0;<br> }
} else if (x_axis) {<br> if (point.y > axis) {<br> return 1;<br> } else if (point.y < axis) {<br> return -1;<br> } else {<br> return 0;<br> }<br> } else {<br> i = point.y - a * point.x - b;<br> if ((point.y - a * point.x - b) < 0) {<br> return -1;<br> } else if ((point.y - a * point.x - b) > 0) {<br> return 1;<br> } else {<br> return 0;<br> }<br> }<br> }<br>}
//下面的函数判断一群点是否构成凸多边形
public boolean ishull(vec2[] mousestroke){
int mousestrokelength=mousestroke.length;
for (int i = 0; i < mousestrokelength; i+=2) {<br> polyonutil.getinstance().setab(mousestroke[(i) % mousestrokelength],<br> mousestroke[(i + 1) % mousestrokelength]);<br> for (int j = 0, k = 0; j < mousestrokelength; j++) {<br> if (j == i || j == (i + 1)) {<br> continue;<br> } else {<br> flag[k] = polyonutil.getinstance().getflag(mousestroke[j<br> % mousestrokelength]);<br> k++;<br> }<br> }<br> for (int l = 0; l < flag.length - 1; l++) {<br> if (flag[l] * flag[l + 1] < 0) {<br> // ao 当是凹多边形时候<br> return false;<br> }<br> }<br> }
return true;
}
import org.jbox2d.common.vec2;
public class polyonutil {<br> private static polyonutil instance;<br> private float a;<br> private float b;<br> private boolean x_axis;<br> private boolean y_axis;<br> private float axis;<br> float i;
public static polyonutil getinstance() {<br> if (instance == null) {<br> instance = new polyonutil();<br> }<br> return instance;<br> }
public void setab(vec2 point1, vec2 point2) {<br> if (point1.x == point2.x) {<br> if (point1.y != point2.y) {<br> y_axis = true;<br> axis = point1.x;<br> }<br> } else if (point1.y == point2.y) {<br> if (point1.x != point2.x) {<br> x_axis = true;<br> axis = point1.y;<br> }<br> } else {<br> y_axis = false;<br> x_axis = false;<br> a = (point1.y - point2.y) / (point1.x - point2.x);<br> b = point1.y - point1.x * a;<br> }<br> }
public byte getflag(vec2 point) {<br> if (y_axis) {<br> if (point.x > axis) {<br> return 1;<br> } else if (point.x < axis) {<br> return -1;<br> } else {<br> return 0;<br> }
} else if (x_axis) {<br> if (point.y > axis) {<br> return 1;<br> } else if (point.y < axis) {<br> return -1;<br> } else {<br> return 0;<br> }<br> } else {<br> i = point.y - a * point.x - b;<br> if ((point.y - a * point.x - b) < 0) {<br> return -1;<br> } else if ((point.y - a * point.x - b) > 0) {<br> return 1;<br> } else {<br> return 0;<br> }<br> }<br> }<br>}
//下面的函数判断一群点是否构成凸多边形
public boolean ishull(vec2[] mousestroke){
int mousestrokelength=mousestroke.length;
for (int i = 0; i < mousestrokelength; i+=2) {<br> polyonutil.getinstance().setab(mousestroke[(i) % mousestrokelength],<br> mousestroke[(i + 1) % mousestrokelength]);<br> for (int j = 0, k = 0; j < mousestrokelength; j++) {<br> if (j == i || j == (i + 1)) {<br> continue;<br> } else {<br> flag[k] = polyonutil.getinstance().getflag(mousestroke[j<br> % mousestrokelength]);<br> k++;<br> }<br> }<br> for (int l = 0; l < flag.length - 1; l++) {<br> if (flag[l] * flag[l + 1] < 0) {<br> // ao 当是凹多边形时候<br> return false;<br> }<br> }<br> }
return true;
}
发表评论
-
百度质量部实习居然通过了~
2012-02-08 12:23 960[size=small;]? ? ?本来打算在软工所苦 ... -
Android上的log,日志相关
2012-02-07 14:18 1492摘自:http://blog.csdn.net/met ... -
随 笔
2012-02-04 13:39 569金风玉露一相逢,便胜却人间无数。英文版: chemis ... -
MyISAM InnoDB 区别
2012-02-02 16:59 702<h1 id="artibody ... -
数独suduku
2012-01-31 14:38 888sudu sudu sudu sudu sudu su ... -
paypal提现如何省钱
2011-12-28 16:58 1182据PayPal中文注册得知,如今很多收样品费的外贸商户 ... -
ORA-01012: not logged on 解决办法
2011-12-28 13:08 3434<span style="font-f ... -
c语言中去除const修饰
2011-12-21 10:54 1389[size=16px;]<span style= ... -
虚析构函数(总结 帖子)
2011-12-21 09:54 674<span style="" ... -
手机防盗软件实现(源码)
2011-12-20 12:54 917<a href="http://blo ... -
谈谈Q+平台的技术实现
2011-12-20 09:49 938这篇文章是我个人 ... -
微创短信开发平台
2011-12-19 11:39 740在网上闲逛,发现了一个站点,微创短信开发平台(http ... -
《使用 Microsoft .NET 的企业解决方案模式》读书笔记3
2011-12-19 10:24 727第3章 Web表示模式 没有一个设计策略能够适合所有情 ... -
MapXtreme2004代码 MapControl控件中显示地图文件
2011-12-15 14:29 860::<?xml:namespace prefix ... -
ASP.NET开发工具Web Matrix介绍
2011-12-15 13:39 938<p class="MsoPlain ... -
用C#写定时关机的程序
2011-12-15 11:14 677</span></font>& ... -
JUnit单元测试感悟
2011-12-14 11:29 837<p class="MsoNorma ... -
JNI调用的注意事项
2011-12-14 09:34 722JNI的简单教程网上很多,看看就能够明白,照着操作也基 ... -
javax.xml.transform.TransformerFactoryConfigurationError
2011-12-13 13:34 817<span style="" ... -
ViewFlipper “Receiver not registered” Error
2011-12-12 10:59 1101偶尔出现这个错误: <span> < ...
相关推荐
判断点是否在一个多边形区域内, 支持凸多边形与凹多边形(算法源于QT的QPolygonF)
通过输入n个点判断这n个点能否构成凸多边形,是输出是否则输出否!
计算几何计算点到凸多边形距离代码 已在各大oj在线测评通过
在平面直角坐标系中,给定一个点序列,判断这些点是否能够构成凸多边形,并且按照顺时针方向输出这些点。
凸多边形面积 【问题描述】 给出平面上一组顶点的坐标,计算出它们所围成的凸多边形的面积. 输入数据表示了如图所示的四边形。其面积为5.00。 评分标准: 本程序允许使用数学库函数,如果你的输出与标准...
问题描述:描述了凸多边形最优三角剖分的问题背景 使用C++,实现了凸多边形最优三角剖分,有足够的注释 内含可执行程序
简单多边形,没有自交、没有内孔,的凸分解, 转自网上,感谢高手,有诗为证:君不见黄河之水天上来,奔流到海不复回。 君不见高堂明镜悲白发,朝如青丝暮成雪。
这是一个水平/垂直交叉点数判别法判断点是否在凹(凸)多边形内部(适用于任意多边形包括凹凸边形) 注意到如果从P作水平向左的射线的话,如果P在多边形内部,那么这条射线与多边形的交点必为奇数,如果P在多边形...
凸多边形最优三角剖分(C语言编写) 算法
给出平面上一组顶点的坐标,计算出它们所围成的凸多边形的面积. 输入数据表示了如图所示的四边形。其面积为5.00。 评分标准: 本程序允许使用数学库函数,如果你的输出与标准答案相差不超过0.02则得满分...
用射线法判断点是否在多边形中,编译环境VC6.0,鼠标左键实现绘制多边形,右键进行判断。
算法的project,凸多边形三角划分。 代码c++编写 ,vc6编译。有mfc的画图,也是vc6. 有详细的文档报告。
java 判断点在多边形内 java 判断点在多边形内 java 判断点在多边形内 java 判断点在多边形内 java 判断点在多边形内 Java GIS 多边形 Java点多边形
计算几何——凸多边形判断+点在多边形内判断+求点到直线距离.docx
判断点和多边形的位置,判断点和多边形的位置,判断点和多边形的位置
知道了凸多边形的顶点,将其排序使得这些点按顺序连接之后能形成一个凸多边形
\课件\算法设计\凸多边形的最优三角剖分\凸多边形的最优三角剖分
OpenGL 凸多边形截取线段 Cyrus-Beck 算法 OpenGL 凸多边形截取线段 Cyrus-Beck 算法 OpenGL 凸多边形截取线段 Cyrus-Beck 算法 OpenGL 凸多边形截取线段 Cyrus-Beck 算法 OpenGL 凸多边形截取线段 Cyrus-Beck 算法 ...
使用鼠标指定一组点来定义凸多边形; 使用鼠标指定测试点; 根据测试结果输出“在内部”或“在外部”;
判断点是否在多边形内 #include #include #include #define max(a,b) ((a>b)?a:b) #define min(a,b) ((a)?a:b) using namespace std; const double INFINITY = 1e10; const double ESP = 1e-5; const int MAX_N ...