import com.rinearn.graph3d.RinearnGraph3D; import com.rinearn.graph3d.renderer.RinearnGraph3DRenderer; import com.rinearn.graph3d.event.RinearnGraph3DPlottingEvent; import com.rinearn.graph3d.event.RinearnGraph3DPlottingListener; import java.awt.Color; public class Sample6 implements RinearnGraph3DPlottingListener { RinearnGraph3D graph; RinearnGraph3DRenderer renderer; public static void main(String[] args) { new Sample6(); } // グラフの起動と初期設定 public Sample6() { // グラフを起動してレンダラー(描画エンジン)を取得 this.graph = new RinearnGraph3D(); this.renderer = this.graph.getRenderer(); // グラフ空間の範囲を設定 this.graph.setXRange(1.0, 10.0); this.graph.setYRange(1.0, 10.0); this.graph.setZRange(1.0, 10.0); // 再描画が必要になったらイベントで受け取れるようにリスナー登録 this.graph.addPlottingListener(this); // 3D形状の描画処理を実行してスクリーンを3DCGレンダリング this.draw(); this.renderer.render(); } // 3D形状の描画処理 public void draw() { // グラフ空間内の(1,2,3)の位置に、半径10ピクセルで赤色の点を描画 this.renderer.drawPoint(1.0,2.0,3.0, 10.0, Color.RED); // (1,1,1)と(8,8,5)の位置を結ぶ、太さ5ピクセルで緑色の線を描画 this.renderer.drawLine(1.0,1.0,1.0, 8.0,8.0,5.0, 5.0, Color.GREEN); // (1,4,5)と(5,4,5)と(5,8,7)を結ぶ、青色の三角形を描画 this.renderer.drawTriangle(1.0,4.0,5.0, 5.0,4.0,5.0, 5.0,8.0,7.0, Color.BLUE); // (5,1,1)と(8,1,1)と(8,4,1)と(5,4,1)を結ぶ、紫色の四角形を描画 this.renderer.drawQuadrangle( 5.0,1.0,1.0, 8.0,1.0,1.0, 8.0,4.0,1.0, 5.0,4.0,1.0, Color.MAGENTA ); } // 再描画が必要になった際に呼ばれるイベント処理 @Override public void plottingRequested(RinearnGraph3DPlottingEvent e) { // 3D描画処理を再実行 this.draw(); } // 以下のイベント処理はここでは何もしない @Override public void plottingCanceled(RinearnGraph3DPlottingEvent e) { } @Override public void plottingFinished(RinearnGraph3DPlottingEvent e) { } }