きになったことブログ

きになったことブログ

日々の生活の中で覚えておきたいことがあれば

線形変換 java

「線分」は2つの端点で定義される。問題2 で定義した「点」クラスPoint を用いて「線分」を
表すLineSegment クラスを定義し、線分の2 つの端点を問題2 で定義した線形変換で変換し、
新たな線分を得るメソッドlinearTransfer を定義しなさい。このクラスを用いて、1つの線分
を定義するのに必要な4 つの値をコマンドライン引数で与えて、その線形変換後の線分を以下の
ように画面表示するmain メソッドをもつクラスMain を定義しなさい。

 

Input LineSegment (5.0,10.0)->(10.0,20.0)
=> LineSegment after linearTransfer : (70.0, 0.0) -> (140.0,0.0)

 

Main.java

class Main{

 public static void main(String args[]){

  LineSegment beforeLine =new LineSegment(5,10,10,20);
  LineSegment afterLine = beforeLine.linerTransfer();
  System.out.println("Input LineSegment:"+beforeLine +"\n => LineSegment after linerTransfer:"+afterLine);

 }


}

 

LineSegmemt.java

class LineSegment{

 private Point p;
 private Point p1;

 LineSegment(double x, double y, double x1,double y1){
  this.p=new Point(x,y);
  this.p1=new Point(x1,y1);
 }

 LineSegment(Point p,Point p1){
  this.p =p;
  this.p1=p1;
 }

 LineSegment linerTransfer(){
  return new LineSegment(p.linerTransfer(), p1.linerTransfer());
 }

 public String toString(){
  return (this.p + "-->"+this.p1);
 }
}

 

Point.java

class Point{

 private double x;
 private double y;

 Point(double x, double y){
  this.x = x;
  this.y = y;
 }

 Point linerTransfer(){
  double x0 =6*this.x + 4*this.y;
  double y0 = (-2)*this.x+this.y;
  return new Point(x0,y0);
 }

 public String toString(){
  return ("("+this.x+","+this.y+")");
 }


}

 

 

 

//数値指定なしの線形変換