[基本算法]Java——编写一个线段类,实现基本数学算法
来源:互联网 发布:淘宝贝南海幼儿园 编辑:程序博客网 时间:2024/06/11 00:49
[基本算法]Java——编写一个线段类,实现基本数学算法
主要属性有:e1,e2端点,类型为Point;
编写构造方法,如(Point p1, Point p2)
编写成员方法。如:
检查线段是否位于第一象限
求线段的长度
判断两天线段是否相交
求一点到该线段的距离
主要属性有:e1,e2端点,类型为Point;
编写构造方法,如(Point p1, Point p2)
编写成员方法。如:
检查线段是否位于第一象限
求线段的长度
判断两天线段是否相交
求一点到该线段的距离
import java.awt.Point;
import java.lang.Math;
public class MyLine
...{
private Point e1;
private Point e2;
MyLine(Point p1,Point p2)
...{
e1=p1;
e2=p2;
}
void is1quadrant()
...{
if(e1.x>0&&e1.y>0&&e2.x>0&&e2.y>0)
System.out.println("线段位于第一象限");
else
System.out.println("线段不在第一象限");
}
public float length(Point p1,Point p2)
...{
return (float)java.lang.Math.sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));
}
/**//*public bool IsIntersect(float x0,float y0,float x1,float y1,float x2,float y2,float x3,float y3,float &InterX,float &InterY)
{
}*/
public void distance(Point a,Point b,Point c)
...{
float f;
float d;
Point ab=new Point();
Point ac=new Point();
Point e=new Point();
ab.x=b.x-a.x;
ab.y=b.y-a.y;
ac.x=c.x-a.x;
ac.y=c.y-a.y;
f=ab.x*ac.x+ab.y*ac.y;
d=ab.x*ab.x+ab.y+ab.y;
if(f<0)
System.out.println(length(a,c));
if(f>d)
System.out.println(length(a,b));
f=f/d;
e.x=a.x+(int)f*ab.x; // c在ab线段上的投影点
e.y=a.y+(int)f*ab.y;
System.out.println(length(a,e));
}
}
class l
...{
public static void main(String args[])
...{
Point p1;
Point p2;
Point m;
p1=new Point(1,1);
p2=new Point(2,1);
m=new Point(4,1);
MyLine line=new MyLine(p1,p2);
line.is1quadrant();
System.out.println("两点间线段的长度:"+line.length(p1,p2));
System.out.println("点x到线段的长度:");
line.distance(p1,p2,m);
}
}
import java.lang.Math;
public class MyLine
...{
private Point e1;
private Point e2;
MyLine(Point p1,Point p2)
...{
e1=p1;
e2=p2;
}
void is1quadrant()
...{
if(e1.x>0&&e1.y>0&&e2.x>0&&e2.y>0)
System.out.println("线段位于第一象限");
else
System.out.println("线段不在第一象限");
}
public float length(Point p1,Point p2)
...{
return (float)java.lang.Math.sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));
}
/**//*public bool IsIntersect(float x0,float y0,float x1,float y1,float x2,float y2,float x3,float y3,float &InterX,float &InterY)
{
}*/
public void distance(Point a,Point b,Point c)
...{
float f;
float d;
Point ab=new Point();
Point ac=new Point();
Point e=new Point();
ab.x=b.x-a.x;
ab.y=b.y-a.y;
ac.x=c.x-a.x;
ac.y=c.y-a.y;
f=ab.x*ac.x+ab.y*ac.y;
d=ab.x*ab.x+ab.y+ab.y;
if(f<0)
System.out.println(length(a,c));
if(f>d)
System.out.println(length(a,b));
f=f/d;
e.x=a.x+(int)f*ab.x; // c在ab线段上的投影点
e.y=a.y+(int)f*ab.y;
System.out.println(length(a,e));
}
}
class l
...{
public static void main(String args[])
...{
Point p1;
Point p2;
Point m;
p1=new Point(1,1);
p2=new Point(2,1);
m=new Point(4,1);
MyLine line=new MyLine(p1,p2);
line.is1quadrant();
System.out.println("两点间线段的长度:"+line.length(p1,p2));
System.out.println("点x到线段的长度:");
line.distance(p1,p2,m);
}
}
- [基本算法]Java——编写一个线段类,实现基本数学算法
- Java 基本算法实现
- 数学基本算法整理
- 聚类算法基本实现[Java]
- java语言编写的基本排序算法
- 基本排序算法java实现
- Java实现基本排序算法
- 数据结构基本算法java实现
- 常用基本算法(Java实现)
- 基本算法的java实现
- 基本排序算法Java实现
- 基本排序算法java实现
- 基本排序算法(java实现)
- Java实现基本的算法
- 基本排序算法-java实现
- Python编写算法导论基本算法
- 基本排序算法实现
- 基本算法实现
- 合成
- 查杀病毒autorun风暴的反思
- 努力工作好好生活
- JSP中文处理问题
- [转]vmware for linux 使用经典问答
- [基本算法]Java——编写一个线段类,实现基本数学算法
- VC 常用数据类型总结
- 如何阅读源代码
- [手机平台]Alarm事件管理器设计备忘录
- 生活指南:计算机族必喝的健康饮料
- 计组设计实验代码(一)
- 创业家的四句金玉良言
- jBPM3.12用户指南中文翻译----第一章 绪论
- jBPM3.12用户指南中文翻译----第二章 起步