资源简介
一个线段类 MyLine,要求如下:
n主要属性有: e1,e2 端点,类型为Point
n编写构造方法,如(Point p1 , Point p2)
n编写成员方法。如:
•检查线段是否位于第一象限check…
•求线段的长度 length() …
•判断两条线段(非延长线)是否相交(另一线段作为参数)。
•求一点到该线段(或延长线)的距离
n编写测试程序
•用户输入线段的两点坐标构造一个线段
•用户选择需要执行已编写的哪种方法(判断是否相交)
•根据用户选择的方法要求用户输入点的坐标,或者线段的两点坐标,并反馈给用户结果。
代码片段和文件信息
import java.awt.*;
import java.util.Scanner;
class Point
{float xy;
}
public class MyLine
{
Point p1=new Point();
Point p2=new Point();
public void MyLine(Point p1Point p2)
{
this.p1=p1;
this.p2=p2;
}
//判断线段是否在第一象限内
public boolean check()
{
if(p1.x>0&&p1.y>0&&p2.x>0&&p2.y>0)
return true;
//线段两端点均在第一象限内时线段在第一象限
else
return false;
}
//计算线段的长度,公式为√[(X1-X2)^2+(Y1-Y2)^2]
//构造函数
public double length(Point pt1Point pt2)
{
double result=Math.sqrt((pt1.x-pt2.x)*(pt1.x-pt2.x)+(pt1.y-pt2.y)*(pt1.y-pt2.y));
return result;
}
public double length()
{
double result=Math.sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));
return result;
}
//判断两条线段是否相交
public boolean cross(MyLine l1MyLine l2){
double slope1slope2;//判断斜率是否相等
slope1=(l2.p1.y-l2.p2.y)/(l2.p1.x-l2.p2.x);
slope2=(l1.p1.y-l1.p2.y)/(l1.p1.x-l1.p2.x);
if(slope1==slope2)
return false;
//跨立试验
else{
if((((l2.p1.x-l1.p1.x)*(l1.p2.y-l1.p1.y)-(l2.p1.y-l1.p1.y)*(l1.p2.x-l1.p1.x))*((l2.p2.x-l1.p1.x)*(l1.p2.y-l1.p1.y)-(l2.p2.y-l1.p1.y)*(l1.p2.x-l1.p1.x)))<=0)
return true;
else
return false;
}
}
//一点到线段或延长线的距离
//S=√[p(p-a)(p-b)(p-c)]
//p=(a+b+c)/2
public double distence(Point a){
double d1=this.length();//线段长度
double d2=length(this.p1a);
double d3=length(this.p2a);
if(d2==0||d3==0)
return 0;
else if(d1==0)
return d2;
else{
double p=(d1+d2+d3)/2;
return (Math.sqrt(p*(p-d1)*(p-d2)*(p-d3))/d1*2);
}
}
public static void main(String[] args){
Scanner s1=new Scanner(System.in);
System.out.println(“请输入第一条线段起点的横坐标:“);
float cx1=s1.nextFloat();
System.out.println(“请输入第一条线段起点的纵坐标:“);
float cy1=s1.nextFloat();
Sys相关资源
- java 毕业设计 进销存管理系统 源码
- java图片浏览器跨平台运行程序与源码
- 基于java的在线考试系统-毕业设计
- 微博系统(Java源码,servlet+jsp),适
- java串口通信全套完整代码-导入eclip
- jsonarray所必需的6个jar包.rar
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- Java写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
- JAVA3D编程示例(建模、交互)
川公网安备 51152502000135号
评论
共有 条评论