狄洛尼三角网算法c语言,基于狄洛尼三角网生成算法的源代码.docx

import java.util.*;

import java.awt.*;

public class MyEdge {

public static int count=0;

public int id;

private int begin;

private int end;

private int useCount;

public MyEdge(int begin,int end)

{

this.id=++count;

this.begin=begin;

this.end=end;

this.useCount=0;

}

public MyEdge(MyPoint begin,MyPoint end)

{

this.id=++count;

this.begin=begin.id;

this.end=end.id;

this.useCount=0;

}

public int getUseCount()

{

return this.useCount;

}

public void addUseCount()

{

this.useCount++;

}

/*

* 下面这两个方法是得到边的来个顶点

* 若集合中没有指定的对象则返回空值

*/

public MyPoint getBeginPoint(Map pointSet)

{

MyPoint temp=pointSet.get(this.begin);

return temp;

}

public MyPoint getEndPoint(Map pointSet)

{

MyPoint temp=pointSet.get(this.end);

return temp;

}

/*

* 下面是根据两个点的ID,在边集中找寻两点组成的边

* 返回的是边对象

* 若没找到,则返回空

*/

public static MyEdge getEdge(int begin,int end,Map edgeSet)

{

MyEdge temp=null;

for(int i=1;i<=edgeSet.size();i++)

{

temp=edgeSet.get(i);

if(temp.begin==begin&&temp.end==end)

break;

}

return temp;

}

/*

* 下面是根据两个点对象,在边集中找寻两点组成的边

* 返回的是边对象

* 若没找到,则返回空

*/

public static MyEdge getEdge(MyPoint begin,MyPoint end,Map edgeSet)

{

MyEdge temp=null;

for(int i=1;i<=edgeSet.size();i++)

{

temp=edgeSet.get(i);

if(temp.begin==begin.id&&temp.end==end.id)

break;

}

return temp;

}

public void draw(Graphics g,Map pointSet)

{

MyPoint begin=pointSet.get(this.begin);

MyPoint end=pointSet.get(this.end);

Color c=g.getColor();

g.setColor(Color.blue);

g.drawLine(begin.x, begin.y, end.x,end.y );

g.setColor(c);

}

/*

* 下面这个方法是用来判断点在当前直线的左边还是右边

* 当然当前直线是有方向的

* 若点在直线的右边,则返回false

* 否则返回true

*/

public boolean isOnLeft(MyPoint p,Map pointSet)

{

boolean flag=false;

MyPoint begin=pointSet.get(this.begin);

MyPoint end=pointSet.get(this.end);

int Line=(begin.y-end.y)*

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值