绘制一个三角型,当鼠标点击三角边框或内部时,改变他的颜色。当多个三角重叠时,能够绘制出覆盖效果(根据高度参数决定谁在定点),并且鼠标点击时可
以精确选择这些交错在一起的三角型。
这样的功能使用draw2d可以实现吗?我觉得draw2d在鼠标点击的精确度上不是很好,尤其是三角型菱形这样的图形,点击图形以外的地方依然会触发点击或拖拽事件。
我想用java实现类似于mapinfo的功能。请问该使用什么来开发。我听说过mapx 和 MapXtreme这些mapinfo公司提供的接口,但是我想做单机程序,不需要服务器部署
或连接外网。mapx 和 MapXtreme似乎必须要部署服务器,而且似乎有一些也不支持JAVA。请大家给点意见,多谢了。
以精确选择这些交错在一起的三角型。
这样的功能使用draw2d可以实现吗?我觉得draw2d在鼠标点击的精确度上不是很好,尤其是三角型菱形这样的图形,点击图形以外的地方依然会触发点击或拖拽事件。
我想用java实现类似于mapinfo的功能。请问该使用什么来开发。我听说过mapx 和 MapXtreme这些mapinfo公司提供的接口,但是我想做单机程序,不需要服务器部署
或连接外网。mapx 和 MapXtreme似乎必须要部署服务器,而且似乎有一些也不支持JAVA。请大家给点意见,多谢了。
解决方案 »
- 怎么用正则表达式,取出特定的字符?
- 如何读取和清理一个正在使用的日志文件
- 类在实例化之前是否占有内存?
- 单位新上了用友nc系统,是java做的,我不明白的是,这是b/s系统,可是操作界面并不是浏览器呀。这是什么技术?
- java魔方阵数组越界错误!!!
- 日期转换的问题,请各位帮忙!
- 请问“WIN2000下如何配置JDK啊?”
- 老师留的JAVA作业:大家给点思路!
- ?请问各位朋友。如何在applet中实现点击一个按钮,然后IE转到另一个页面的功能啊(或者激活本页的另一个applet也行)
- 请问在JAVA环境下怎么调用DLL中的API?
- java 垃圾回收的问题
- 求AWT或SWING电子版的入门书籍
但是判断是三角形外部还是内部根据三角形三边的直线方程进行
另外窗体的左上角 xy坐标是[0,0],向右平移x增大,向下y增大。这一点似乎与上学时候学的坐标系不同。
就举个单元示例
假设有一直线方程是 y=kx+b (k>0 b>0)
对于这样一条直线在传统笛卡儿坐标系中
对于点(x1,y1)
如果y1>kx1+b 则此点在直线上方
如果x1>(y1-b)/k 则此点在直线右方
依次类推
但k=0时要特殊处理
我要计算的是三角形,那么你说y1>kx1+b 则此点在直线上方。
这里提到的“直线”指的是三角形的某一条边吗?
还是三角形内部任意两点形成的直线?
先给一个叉乘变通的判断方法吧
比如三角型外有点P,三角型ABC,先算ABC的面积,然后算
三角形APB,BPC,CPA的面积,加起来的和如果等于ABC的面积的话,那就是在三角型内(或边上)了
面积用海伦公式
沿着三角形的边按顺时针方向走,判断改点是否在每条边的右边(这可以通过叉乘判断),如果该点在每条边的右边,则在三角形内,否则在三角形外。这个算法只用到了三次叉乘,没有除法运算和三角函数、开根号等运算,所以效率很高,而且精度很高(没有浮点误差)。设三角形三点A(x1,y1)B(x2,y2)C(x3,y3),已知点M(x,y),1,先求出三个向量MA,MB,MC. 2,计算MA X MB,MB X MC,MC X MA (X表叉乘)3,如果此三组的向量叉乘的结果都是同号的(或都正,或都负),即方向相同的,则说明点M在三角形每条边的同侧,即内部。否则必在外部!
具体示例:
A(0,3) B(0,0) C(3,0) M(1,1)
MA (1,-2)
MB (1,1)
MC (-2,1) MA X MB = 3
MB X MC = 3
MC X MA = 3
N(3,3)
NA (3,0)
NB (3,3)
NC (0,3) NA X NB = 6
NB X NC = 9
NC X NA = -9根据以上规则可判断M点在内 N点在外