资源简介
一个线段类 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实现的bp神经网络算法,代码超级
- RSS阅读器java
- javac/c++phpc#安全编码规范
- JAVAC/S登陆界面
- JAVA 酒店客房管理
- 通过JSP实现 图片上传
- 多媒体技术课程设计-java实现算术编码
- opencv java api 手册
- Java实现最小平方误差一元线性回归
- JAVA的名片管理系统北大青鸟
- java与蓝牙通信
- JAVA实现FFT算法
- 利用Java程序把多张图片合成一张图片
- mysql-connector-java-5.1.23-bin.jar
- 钠热物性计算程序
- WINDOWS 环境下用JAVA 实现WEB 服务器
- 使用Java编写的绘图板应用程序
- 学生信息管理系统java+SQL
- 耿祥义--JAVA课程设计
-
Java sc
ript经典教程一——从入门到精 - java实现柱状图
- 动物园java代码
- java工程师亚信面试题
- Java 二十四点程序 24点程序 加减乘除
- 一个自己用JAVA实现的简单ARMA建模
- Java开发的毕业设计-财务管理系统
- 基于java swing随机抽签程序第二版 by
- 基于java swing的随机抽签程序 by Empty
- JAVA SWT学生信息管理系统
评论
共有 条评论