javaline
‘壹’ java中怎样创建一个Line类以便创建一个Vector数组来接受g.drawline绘画出的直线
import java.util.ArrayList;
import java.util.List;
public class Line {
/*
* x1 the first point's coordinate.
* y1 the first point's coordinate.
* x2 the second point's coordinate.
* y2 the second point's coordinate.
*/
private int x1;
private int y1;
private int x2;
private int y2;
private List<Line> lines =new ArrayList<Line>();
public Line() {}
public Line(int x1, int y1, int x2, int y2) {
this.x1 = x1;
this.y1 = y1;
this.x2 = x2;
this.y2 = y2;
}
public int getX1() {
return x1;
}
public void setX1(int x1) {
this.x1 = x1;
}
public int getY1() {
return y1;
}
public void setY1(int y1) {
this.y1 = y1;
}
public int getX2() {
return x2;
}
public void setX2(int x2) {
this.x2 = x2;
}
public int getY2() {
return y2;
}
public void setY2(int y2) {
this.y2 = y2;
}
public List<Line> Lines(){
return this.lines;
}
}
‘贰’ Java里面的line在哪儿
在java工具栏里面。
我们知道,java程序的启动入口是main方法,我们其实已经可以通过main中的args参数来实现将外界变量传入main方法内部了,那为什么还需要CommandLine。因为args参数使用不够方便,主要是因为其实现是一个数组,整个传递过程需要依赖顺序。编程者和程序调用需要记忆参数的顺序,才能正确传递参数。
当需要换行时,通常建议使用line。
‘叁’ java 判断直线状况
publicclassLineTest{
publicstaticvoidmain(String[]args){
Pointp1=newPoint(0,3),p2=newPoint(4,0);
Linel1=newLine(0,3,4,0),
l2=newLine(p1,p2),
l3=newLine(0,4,0,3),
l4=newLine(4,4,0,4),
l5=newLine(0,0,3,3);
System.out.println("l1:"+l1);
System.out.println("l2:"+l2);
System.out.println("l3:"+l3);
System.out.println("l4:"+l4);
System.out.println("l5:"+l5);
System.out.println("l1length:"+l1.getLength());
System.out.println("l2length:"+l2.getLength());
System.out.println("l3length:"+l3.getLength());
System.out.println("l4length:"+l4.getLength());
System.out.println("l1isHorizontal:"+l1.isHorizontal());
System.out.println("l3isHorizontal:"+l3.isHorizontal());
System.out.println("l1isVertical:"+l1.isVertical());
System.out.println("l4isVertical:"+l4.isVertical());
System.out.println("l1slope:"+l1.getSlope());
System.out.println("l3slope:"+l3.getSlope());
System.out.println("l4slope:"+l4.getSlope());
System.out.println("l5slope:"+l5.getSlope());
System.out.println("l1midpoint:"+l1.getMidpoint().toString());
System.out.println("l3midpoint:"+l3.getMidpoint().toString());
System.out.println("l1equalsl2:"+l1.equals(l2));
System.out.println("l1equalsl3:"+l1.equals(l3));
System.out.println("l2equalsl3:"+l2.equals(l3));
}
}
classLine{
privatePointp1,p2;
publicLine(Pointp1,Pointp2){
super();
this.p1=p1;
this.p2=p2;
}
publicLine(intx1,inty1,intx2,inty2){
super();
this.p1=newPoint(x1,y1);
this.p2=newPoint(x2,y2);
}
publicintgetLength(){
inta=(int)Math.abs(p1.getX()-p2.getX());
intb=(int)Math.abs(p1.getY()-p2.getY());
return(int)Math.sqrt(a*a+b*b);
}
publicbooleanisHorizontal(){
returnMath.abs(p1.getX()-p2.getX())<=0.00001;
}
publicbooleanisVertical(){
returnMath.abs(p1.getY()-p2.getY())<=0.00001;
}
publicdoublegetSlope(){
doublea=p1.getX()-p2.getX();
doubleb=p1.getY()-p2.getY();
if(b==0.0)returnDouble.MAX_VALUE;
returna/b;
}
publicPointgetMidpoint(){
returnnewPoint((int)((p1.getX()+p2.getX())/2)
,(int)((p1.getY()+p2.getY())/2));
}
publicbooleanequals(Lineol){
return(this.p1.equals(ol.getP1()))&&
(this.p2.equals(ol.getP2()));
}
publicPointgetP1(){
returnp1;
}
publicvoidsetP1(Pointp1){
this.p1=p1;
}
publicPointgetP2(){
returnp2;
}
publicvoidsetP2(Pointp2){
this.p2=p2;
}
@Override
publicStringtoString(){
StringBuildersb=newStringBuilder();
sb.append("[")
.append("(").append(p1.getX()).append(",")
.append(p1.getY()).append(")").append(",")
.append("(").append(p2.getX()).append(",")
.append(p2.getY()).append(")")
.append("]");
returnsb.toString();
}
}
有个小问题就是你要求用Point做点,而Point点的数据类型是int,计算中点时会损失精度,可以改成Point2D实现。
‘肆’ 如何在java中实现一个Line类
http://wenku..com/view/c6d9e9df3186bceb19e8bb23.html
在网络文库中上传过一个文档,里面有你要的东西的,图文并茂的说明。
‘伍’ java 中 String line=br1.readLine(); 读入的一行是仅有换行符,为什么 if(line!="") 是false,应该是true
应该使用equal比较。
equal是值比较,!=是地址比较了。
‘陆’ java Line2D 问题。。。
当然是false了,你要知道line.contains();方法判断的是该点有没有包含在区域里面,但是你line是一条线呀,根本没有区域可言,所以总是返回false,你可以把线换成矩形,然后再测试,就不总是返回false了。
‘柒’ java中.newLine()把前一行覆盖掉了
建议不要采用newLine();的方式,建议在外层for循环结束的时候 bw1.write(System.getProperty("line.separator"));代替bw1.newLine();
‘捌’ line在java是什么意思
换行的意思
Line”英音 [lain] ;美音 [lain] ;
释义:
1)n. (名词)
1、line的基本意思是“线,线条”,指在物体表面上留下的长的痕迹,可以是直的,也可以是弯的;可指具体的线,也可指抽象的线。具体的线如电话线、绳子、铁路线等;抽象的线如行业、专长、方针、路线等。
2、line作“行”解时是单位词,其后常可接“of+ n. ”, of后的名词如是不可数名词表示复数意义时, line用复数形式;of后的名词如是可数名词,用于复数意义时,line和该名词均用复数形式。
3、line还可作“赤道”解,其前须加定冠词the。“a line of+ n. ”作主语时,谓语动词的数由line决定,而不依其后的名词。
2)v. (动词)
1、line的基本意思是“用线表示,画线于”,引申可指“排成一行”“排队,排齐”。line还可作“给…加衬里”解,作此解时,常与介词with连用。
2、line可用作及物动词,接名词或代词作宾语。可用于被动结构。例:
a line与a few lines可以解释为“短信”的意思。Please drop me a line (或a few lines) as soon as possible.
在a line of加名词作主语的句子中,谓语动词要与a line保持一致性,而不是与of后的名词保持一致性;
在信的开头,通常会出现Just a line to tell you that ...或者A line to say that ...等,这些都是习惯用语。Just a line to tell you that I have failed to the examination.