import java.applet.Applet; import java.awt.*; import java.awt.event.*; import java.awt.Graphics; import java.lang.Math; /////////////////////////////////////////////////////////////////////主类开始////////////////// public class versuch1 extends Applet implements ActionListener { ///////////////////////////////////////////////////变量定义部分///////// double A_x1, A_x2, A_y1, A_y2; double B_x1, B_x2, B_y1, B_y2; boolean Button_Add_unten=false, Button_Minus_unten=false; //告知哪个按钮被按下 boolean Button_Multi_unten=false, Button_Div_unten=false; //告知哪个按钮被按下 boolean Button_zp_unten=false, Button_rzp_unten=false; //告知哪个按钮被按下 Label Label_1=new Label("A=[",Label.RIGHT); Label Label_2=new Label(",",Label.CENTER); Label Label_3=new Label(",",Label.CENTER); Label Label_4=new Label(",",Label.CENTER); Label Label_5=new Label(",",Label.CENTER); Label Label_6=new Label("] + j ["); Label Label_7=new Label("] + j ["); Label Label_8=new Label("], B=["); Label Label_9=new Label("]"); Panel Panel_Text_Eingeben=new Panel(); //设置用于文本输入的面板 Panel Panel_Menu=new Panel(); //设置用于按钮的面板 Panel Panel_Bild_Zeigen=new Panel(); //设置用于画图的面板 Canvas myCanvas=new Canvas(); //设置画板用于画图 TextField Text_A_x1=new TextField(10); TextField Text_A_x2=new TextField(10); TextField Text_A_y1=new TextField(10); TextField Text_A_y2=new TextField(10); TextField Text_B_x1=new TextField(10); TextField Text_B_x2=new TextField(10); TextField Text_B_y1=new TextField(10); TextField Text_B_y2=new TextField(10); Button Button_A_Zeigen=new Button("A Zeigen"); Button Button_B_Zeigen=new Button("B Zeigen"); Button Button_Add=new Button("+"); Button Button_Minus=new Button("-"); Button Button_Multi=new Button("*"); Button Button_Div=new Button("/"); Button Button_resert=new Button("Reset"); Button Button_Eckpunkte=new Button("Eckpunkte"); Button Button_Eckpunkte_Linien=new Button("Linien"); Button Button_ZufallPunkte=new Button("ZP"); Button Button_ZufallRPunkte=new Button("ZPR"); ///////////////////////////////////////////////////////////变量定义部分结束//// //////////////////////////////////////////////////////////////初始化部分///////// public void init() { Button_A_Zeigen.setBackground(Color.lightGray); //给按钮设置颜色 Button_B_Zeigen.setBackground(Color.lightGray); //给按钮设置颜色 Button_Add.setBackground(Color.lightGray); //给按钮设置颜色 Button_Minus.setBackground(Color.lightGray); //给按钮设置颜色 Button_Multi.setBackground(Color.lightGray); //给按钮设置颜色 Button_Div.setBackground(Color.lightGray); //给按钮设置颜色 Button_resert.setBackground(Color.lightGray); //给按钮设置颜色 Button_Eckpunkte.setBackground(Color.lightGray); //给按钮设置颜色 Button_Eckpunkte_Linien.setBackground(Color.lightGray); //给按钮设置颜色 Button_ZufallPunkte.setBackground(Color.lightGray); //给按钮设置颜色 Button_ZufallRPunkte.setBackground(Color.lightGray); //给按钮设置颜色 Text_A_x1.setBackground(new Color(255,255,255)); Text_A_x2.setBackground(new Color(255,255,255)); Text_A_y1.setBackground(new Color(255,255,255)); Text_A_y2.setBackground(new Color(255,255,255)); Text_B_x1.setBackground(new Color(255,255,255)); Text_B_x2.setBackground(new Color(255,255,255)); Text_B_y1.setBackground(new Color(255,255,255)); Text_B_y2.setBackground(new Color(255,255,255)); setLayout(new BorderLayout()); //对整个显示区进行分区 add(Panel_Text_Eingeben, BorderLayout.SOUTH); //将用于文本输入的面板加到显示区的下方 add(Panel_Bild_Zeigen, BorderLayout.CENTER); //将用于画图的面板加到显示区的中间,占地最大 add(Panel_Menu, BorderLayout.EAST); //将按钮区的面板加到显示区的右侧 Panel_Text_Eingeben.setBackground(Color.yellow); //设置面板的背景色为黄色 Panel_Menu.setBackground(Color.blue); //设置面板的背景色为红色 Panel_Bild_Zeigen.setBackground(new Color(192,192,192)); //设置面板的背景色为灰色 Panel_Text_Eingeben.setLayout(new GridLayout(1,17)); //再将面板分区并加上控件,1行17列 Panel_Text_Eingeben.add(Label_1); Panel_Text_Eingeben.add(Text_A_x1); Panel_Text_Eingeben.add(Label_2); Panel_Text_Eingeben.add(Text_A_x2); Panel_Text_Eingeben.add(Label_6); Panel_Text_Eingeben.add(Text_A_y1); Panel_Text_Eingeben.add(Label_3); Panel_Text_Eingeben.add(Text_A_y2); Panel_Text_Eingeben.add(Label_8); Panel_Text_Eingeben.add(Text_B_x1); Panel_Text_Eingeben.add(Label_4); Panel_Text_Eingeben.add(Text_B_x2); Panel_Text_Eingeben.add(Label_7); Panel_Text_Eingeben.add(Text_B_y1); Panel_Text_Eingeben.add(Label_5); Panel_Text_Eingeben.add(Text_B_y2); Panel_Text_Eingeben.add(Label_9); Panel_Menu.setLayout(new GridLayout(11,1,0,30)); //再将面板分区并加上控件,11行1列,列间距0,行间距30 Panel_Menu.add(Button_A_Zeigen); Panel_Menu.add(Button_B_Zeigen); Panel_Menu.add(Button_Add); Panel_Menu.add(Button_Minus); Panel_Menu.add(Button_Multi); Panel_Menu.add(Button_Div); Panel_Menu.add(Button_Eckpunkte); Panel_Menu.add(Button_Eckpunkte_Linien); Panel_Menu.add(Button_ZufallPunkte); Panel_Menu.add(Button_ZufallRPunkte); Panel_Menu.add(Button_resert); Panel_Bild_Zeigen.setLayout(new GridLayout(1,1)); //再将面板分区并加上控件,一行一列 Panel_Bild_Zeigen.add(myCanvas); Button_A_Zeigen.addActionListener(this); //对按钮Button_A_Zeigen进行监视 Button_B_Zeigen.addActionListener(this); //对按钮Button_B_Zeigen进行监视 Button_Add.addActionListener(this); //对按钮Button_Add进行监视 Button_Minus.addActionListener(this); //对按钮Button_Minus进行监视 Button_Multi.addActionListener(this); //对按钮Button_Multi进行监视 Button_Div.addActionListener(this); //对按钮Button_Div进行监视 Button_Eckpunkte.addActionListener(this); //对按钮Button_Eckpunkte进行监视 Button_Eckpunkte_Linien.addActionListener(this); //对按钮Button_Eckpunkte_Linien进行监视 Button_ZufallPunkte.addActionListener(this); //对按钮Button_ZufallPunkte进行监视 Button_ZufallRPunkte.addActionListener(this); //对按钮Button_ZufallRPunkte进行监视 Button_resert.addActionListener(this); //对按钮Button_resert进行监视 } //////////////////////////////////////////////////////////////////////////初始化部分结束////////// ////////////////////////////////////////////////////从文本框读取数据函数开始////////////////////// private boolean Daten_Lesen() { A_x1=Double.parseDouble(Text_A_x1.getText()); A_x2=Double.parseDouble(Text_A_x2.getText()); A_y1=Double.parseDouble(Text_A_y1.getText()); A_y2=Double.parseDouble(Text_A_y2.getText()); B_x1=Double.parseDouble(Text_B_x1.getText()); B_x2=Double.parseDouble(Text_B_x2.getText()); B_y1=Double.parseDouble(Text_B_y1.getText()); B_y2=Double.parseDouble(Text_B_y2.getText()); if((A_x2=0)&&(B_y2>=0)))) { r.Div(A_x1,A_x2,A_y1,A_y2,B_x1,B_x2,B_y1,B_y2); k.Koordinaten_Transformation(A_x1,A_x2,A_y1,A_y2,B_x1,B_x2,B_y1,B_y2,r.C_x1,r.C_x2,r.C_y1,r.C_y2, Button_Multi_unten, Button_Div_unten, Button_Add_unten, Button_Minus_unten, Button_zp_unten, Button_rzp_unten); z.Bild_Zeigen_C(myCanvas, k.Transformation_A_x1,k.Transformation_A_x2,k.Transformation_A_y1,k.Transformation_A_y2, k.Transformation_B_x1,k.Transformation_B_x2,k.Transformation_B_y1,k.Transformation_B_y2, k.Transformation_C_x1,k.Transformation_C_x2,k.Transformation_C_y1,k.Transformation_C_y2, k.neu_achse_x,k.neu_achse_y); r.Div(A_x1,A_x2,A_y1,A_y2,B_x1,B_x2,B_y1,B_y2); z.Ergebnis_drucken(myCanvas,r.C_x1,r.C_x2,r.C_y1,r.C_y2); ////////////////////////////////////////////////////////画坐标轴刻度开始/////////////////////// r.Div(A_x1,A_x2,A_y1,A_y2,B_x1,B_x2,B_y1,B_y2); k.Koordinaten_Transformation(A_x1,A_x2,A_y1,A_y2,B_x1,B_x2,B_y1,B_y2,r.C_x1,r.C_x2,r.C_y1,r.C_y2, Button_Multi_unten, Button_Div_unten, Button_Add_unten, Button_Minus_unten, Button_zp_unten, Button_rzp_unten); z.Skala_Zeigen(myCanvas, k.neu_achse_x, k.neu_achse_y, k.faktor_x, k.faktor_y); ////////////////////////////////////////////////////////画坐标轴刻度结束/////////////////////// Button_Add_unten=false; Button_Minus_unten=false; Button_Multi_unten=false; Button_Div_unten=true; Button_zp_unten=false; Button_rzp_unten=false; } else { z.Fehleranmeldung(myCanvas); Graphics g=myCanvas.getGraphics(); g.setColor(new Color(0,0,0)); Font f=new Font("TimesRoman",Font.BOLD,20); g.setFont(f); g.drawString("Die Division kann nicht gerechnet werden!!!",50,330); } } if(event.getSource()==Button_Eckpunkte) //点这个按钮看关键点的情况 { Rechnen r=new Rechnen(); Zeichen z=new Zeichen(); KoordinatenTransformation k=new KoordinatenTransformation(); Graphics g=myCanvas.getGraphics(); Button_zp_unten=false; Button_rzp_unten=false; int i=0; if((!Daten_Veraendern())&&(Button_Add_unten)) { for(i=0;i<16;i++) { r.Add(A_x1,A_x2,A_y1,A_y2,B_x1,B_x2,B_y1,B_y2); k.Koordinaten_Transformation(A_x1,A_x2,A_y1,A_y2,B_x1,B_x2,B_y1,B_y2,r.C_x1,r.C_x2,r.C_y1,r.C_y2, Button_Multi_unten, Button_Div_unten, Button_Add_unten, Button_Minus_unten, Button_zp_unten, Button_rzp_unten); g.setColor(new Color(255,0,0)); g.drawRect(k.eckpunkte_x_add[i],k.eckpunkte_y_add[i],1,1); } } /********************************************************/ if((!Daten_Veraendern())&&(Button_Minus_unten)) { for(i=0;i<16;i++) { r.Minus(A_x1,A_x2,A_y1,A_y2,B_x1,B_x2,B_y1,B_y2); k.Koordinaten_Transformation(A_x1,A_x2,A_y1,A_y2,B_x1,B_x2,B_y1,B_y2,r.C_x1,r.C_x2,r.C_y1,r.C_y2, Button_Multi_unten, Button_Div_unten, Button_Add_unten, Button_Minus_unten, Button_zp_unten, Button_rzp_unten); g.setColor(new Color(255,0,0)); g.drawRect(k.eckpunkte_x_minus[i],k.eckpunkte_y_minus[i],1,1); } } /********************************************************/ if((!Daten_Veraendern())&&(Button_Multi_unten)) { for(i=0;i<16;i++) { r.Multi(A_x1,A_x2,A_y1,A_y2,B_x1,B_x2,B_y1,B_y2); k.Koordinaten_Transformation(A_x1,A_x2,A_y1,A_y2,B_x1,B_x2,B_y1,B_y2,r.C_x1,r.C_x2,r.C_y1,r.C_y2, Button_Multi_unten, Button_Div_unten, Button_Add_unten, Button_Minus_unten, Button_zp_unten, Button_rzp_unten); g.setColor(new Color(255,0,0)); g.drawRect(k.eckpunkte_x_multi[i],k.eckpunkte_y_multi[i],1,1); } } if((!Daten_Veraendern())&&(Button_Div_unten)) { for(i=0;i<16;i++) { r.Div(A_x1,A_x2,A_y1,A_y2,B_x1,B_x2,B_y1,B_y2); k.Koordinaten_Transformation(A_x1,A_x2,A_y1,A_y2,B_x1,B_x2,B_y1,B_y2,r.C_x1,r.C_x2,r.C_y1,r.C_y2, Button_Multi_unten, Button_Div_unten, Button_Add_unten, Button_Minus_unten, Button_zp_unten, Button_rzp_unten); g.setColor(new Color(255,0,0)); g.drawRect(k.eckpunkte_x_div[i],k.eckpunkte_y_div[i],1,1); } } } if(event.getSource()==Button_Eckpunkte_Linien) //点这个按钮看关键点的连线情况 { Rechnen r=new Rechnen(); Zeichen z=new Zeichen(); KoordinatenTransformation k=new KoordinatenTransformation(); Graphics g=myCanvas.getGraphics(); Button_zp_unten=false; Button_rzp_unten=false; int i=0, j=0; if((!Daten_Veraendern())&&(Button_Add_unten)) { for(i=0;i<16;i++) { for(j=0;j<16;j++) { r.Add(A_x1,A_x2,A_y1,A_y2,B_x1,B_x2,B_y1,B_y2); k.Koordinaten_Transformation(A_x1,A_x2,A_y1,A_y2,B_x1,B_x2,B_y1,B_y2,r.C_x1,r.C_x2,r.C_y1,r.C_y2, Button_Multi_unten, Button_Div_unten, Button_Add_unten, Button_Minus_unten, Button_zp_unten, Button_rzp_unten); g.setColor(new Color(255,0,0)); g.drawLine(k.eckpunkte_x_add[i],k.eckpunkte_y_add[i],k.eckpunkte_x_add[j],k.eckpunkte_y_add[j]); } } } /********************************************************/ if((!Daten_Veraendern())&&(Button_Minus_unten)) { for(i=0;i<16;i++) { for(j=0;j<16;j++) { r.Minus(A_x1,A_x2,A_y1,A_y2,B_x1,B_x2,B_y1,B_y2); k.Koordinaten_Transformation(A_x1,A_x2,A_y1,A_y2,B_x1,B_x2,B_y1,B_y2,r.C_x1,r.C_x2,r.C_y1,r.C_y2, Button_Multi_unten, Button_Div_unten, Button_Add_unten, Button_Minus_unten, Button_zp_unten, Button_rzp_unten); g.setColor(new Color(255,0,0)); g.drawLine(k.eckpunkte_x_minus[i],k.eckpunkte_y_minus[i],k.eckpunkte_x_minus[j],k.eckpunkte_y_minus[j]); } } } /********************************************************/ if((!Daten_Veraendern())&&(Button_Multi_unten)) { for(i=0;i<16;i++) { for(j=0;j<16;j++) { r.Multi(A_x1,A_x2,A_y1,A_y2,B_x1,B_x2,B_y1,B_y2); k.Koordinaten_Transformation(A_x1,A_x2,A_y1,A_y2,B_x1,B_x2,B_y1,B_y2,r.C_x1,r.C_x2,r.C_y1,r.C_y2, Button_Multi_unten, Button_Div_unten, Button_Add_unten, Button_Minus_unten, Button_zp_unten, Button_rzp_unten); g.setColor(new Color(255,0,0)); g.drawLine(k.eckpunkte_x_multi[i],k.eckpunkte_y_multi[i],k.eckpunkte_x_multi[j],k.eckpunkte_y_multi[j]); } } } if((!Daten_Veraendern())&&(Button_Div_unten)) { for(i=0;i<16;i++) { for(j=0;j<16;j++) { r.Div(A_x1,A_x2,A_y1,A_y2,B_x1,B_x2,B_y1,B_y2); k.Koordinaten_Transformation(A_x1,A_x2,A_y1,A_y2,B_x1,B_x2,B_y1,B_y2,r.C_x1,r.C_x2,r.C_y1,r.C_y2, Button_Multi_unten, Button_Div_unten, Button_Add_unten, Button_Minus_unten, Button_zp_unten, Button_rzp_unten); g.setColor(new Color(255,0,0)); g.drawLine(k.eckpunkte_x_div[i],k.eckpunkte_y_div[i],k.eckpunkte_x_div[j],k.eckpunkte_y_div[j]); } } } } if(event.getSource()==Button_ZufallPunkte) //点这个按钮看区域内随机点的情况 { Rechnen r=new Rechnen(); Zeichen z=new Zeichen(); KoordinatenTransformation k=new KoordinatenTransformation(); Graphics g=myCanvas.getGraphics(); int i=0; //为循环一万次所设的变量 Button_zp_unten=true; Button_rzp_unten=false; if((!Daten_Veraendern())&&(Button_Add_unten)) { for(i=0;i<10000;i++) { r.Add(A_x1,A_x2,A_y1,A_y2,B_x1,B_x2,B_y1,B_y2); k.Koordinaten_Transformation(A_x1,A_x2,A_y1,A_y2,B_x1,B_x2,B_y1,B_y2,r.C_x1,r.C_x2,r.C_y1,r.C_y2, Button_Multi_unten, Button_Div_unten, Button_Add_unten, Button_Minus_unten, Button_zp_unten, Button_rzp_unten); g.setColor(new Color(0,0,0)); g.drawRect(k.zpunkte_x_add,k.zpunkte_y_add,0,0); } } /********************************************************/ if((!Daten_Veraendern())&&(Button_Minus_unten)) { for(i=0;i<10000;i++) { r.Minus(A_x1,A_x2,A_y1,A_y2,B_x1,B_x2,B_y1,B_y2); k.Koordinaten_Transformation(A_x1,A_x2,A_y1,A_y2,B_x1,B_x2,B_y1,B_y2,r.C_x1,r.C_x2,r.C_y1,r.C_y2, Button_Multi_unten, Button_Div_unten, Button_Add_unten, Button_Minus_unten, Button_zp_unten, Button_rzp_unten); g.setColor(new Color(0,0,0)); g.drawRect(k.zpunkte_x_minus,k.zpunkte_y_minus,0,0); } } /********************************************************/ if((!Daten_Veraendern())&&(Button_Multi_unten)) { for(i=0;i<10000;i++) { r.Multi(A_x1,A_x2,A_y1,A_y2,B_x1,B_x2,B_y1,B_y2); k.Koordinaten_Transformation(A_x1,A_x2,A_y1,A_y2,B_x1,B_x2,B_y1,B_y2,r.C_x1,r.C_x2,r.C_y1,r.C_y2, Button_Multi_unten, Button_Div_unten, Button_Add_unten, Button_Minus_unten, Button_zp_unten, Button_rzp_unten); g.setColor(new Color(0,0,0)); g.drawRect(k.zpunkte_x_multi,k.zpunkte_y_multi,0,0); } } if((!Daten_Veraendern())&&(Button_Div_unten)) { for(i=0;i<10000;i++) { r.Div(A_x1,A_x2,A_y1,A_y2,B_x1,B_x2,B_y1,B_y2); k.Koordinaten_Transformation(A_x1,A_x2,A_y1,A_y2,B_x1,B_x2,B_y1,B_y2,r.C_x1,r.C_x2,r.C_y1,r.C_y2, Button_Multi_unten, Button_Div_unten, Button_Add_unten, Button_Minus_unten, Button_zp_unten, Button_rzp_unten); g.setColor(new Color(0,0,0)); g.drawRect(k.zpunkte_x_div,k.zpunkte_y_div,0,0); } } } if(event.getSource()==Button_ZufallRPunkte) //点这个按钮看区域内边缘随机点的情况 { Rechnen r=new Rechnen(); Zeichen z=new Zeichen(); KoordinatenTransformation k=new KoordinatenTransformation(); Graphics g=myCanvas.getGraphics(); int i=0; //为循环一万次所设的变量 Button_zp_unten=false; Button_rzp_unten=true; if((!Daten_Veraendern())&&(Button_Add_unten)) { for(i=0;i<10000;i++) { r.Add(A_x1,A_x2,A_y1,A_y2,B_x1,B_x2,B_y1,B_y2); k.Koordinaten_Transformation(A_x1,A_x2,A_y1,A_y2,B_x1,B_x2,B_y1,B_y2,r.C_x1,r.C_x2,r.C_y1,r.C_y2, Button_Multi_unten, Button_Div_unten, Button_Add_unten, Button_Minus_unten, Button_zp_unten, Button_rzp_unten); g.setColor(new Color(255,255,0)); g.drawRect(k.rzpunkte_x_add,k.rzpunkte_y_add,0,0); } } /********************************************************/ if((!Daten_Veraendern())&&(Button_Minus_unten)) { for(i=0;i<10000;i++) { r.Minus(A_x1,A_x2,A_y1,A_y2,B_x1,B_x2,B_y1,B_y2); k.Koordinaten_Transformation(A_x1,A_x2,A_y1,A_y2,B_x1,B_x2,B_y1,B_y2,r.C_x1,r.C_x2,r.C_y1,r.C_y2, Button_Multi_unten, Button_Div_unten, Button_Add_unten, Button_Minus_unten, Button_zp_unten, Button_rzp_unten); g.setColor(new Color(255,255,0)); g.drawRect(k.rzpunkte_x_minus,k.rzpunkte_y_minus,0,0); } } /********************************************************/ if((!Daten_Veraendern())&&(Button_Multi_unten)) { for(i=0;i<10000;i++) { r.Multi(A_x1,A_x2,A_y1,A_y2,B_x1,B_x2,B_y1,B_y2); k.Koordinaten_Transformation(A_x1,A_x2,A_y1,A_y2,B_x1,B_x2,B_y1,B_y2,r.C_x1,r.C_x2,r.C_y1,r.C_y2, Button_Multi_unten, Button_Div_unten, Button_Add_unten, Button_Minus_unten, Button_zp_unten, Button_rzp_unten); g.setColor(new Color(255,255,0)); g.drawRect(k.rzpunkte_x_multi,k.rzpunkte_y_multi,0,0); } } if((!Daten_Veraendern())&&(Button_Div_unten)) { for(i=0;i<10000;i++) { r.Div(A_x1,A_x2,A_y1,A_y2,B_x1,B_x2,B_y1,B_y2); k.Koordinaten_Transformation(A_x1,A_x2,A_y1,A_y2,B_x1,B_x2,B_y1,B_y2,r.C_x1,r.C_x2,r.C_y1,r.C_y2, Button_Multi_unten, Button_Div_unten, Button_Add_unten, Button_Minus_unten, Button_zp_unten, Button_rzp_unten); g.setColor(new Color(255,255,0)); g.drawRect(k.rzpunkte_x_div,k.rzpunkte_y_div,0,0); } } } if(event.getSource()==Button_resert) //按这个按钮重新填写所有数据并清屏 { Rechnen r=new Rechnen(); Zeichen z=new Zeichen(); KoordinatenTransformation k=new KoordinatenTransformation(); z.resert(myCanvas); //清屏 A_x1=0; A_x2=0; A_y1=0; A_y2=0; B_x1=0; B_x2=0; B_y1=0; B_y2=0; Button_Add_unten=false; Button_Minus_unten=false; Button_Multi_unten=false; Button_Div_unten=false; Button_zp_unten=false; Button_rzp_unten=false; Text_A_x1.setText(""); Text_A_x2.setText(""); Text_A_y1.setText(""); Text_A_y2.setText(""); Text_B_x1.setText(""); Text_B_x2.setText(""); Text_B_y1.setText(""); Text_B_y2.setText(""); } } /////////////////////////////////////////////////////////////////按钮控制部分结束///////////////// } ///////////////////////////////////////////////////////////////////////////////主类结束////// /////////////////////画图类开始/////////////////////////////////////////////////////// class Zeichen extends Applet { boolean Button_A_unten=false, Button_B_unten=false; //告知哪个按钮被按下 boolean Button_C_unten=false, Button_Minus_unten=false, Button_Multi_unten=false, Button_Div_unten=false; //告知哪个按钮被按下 //////////////////////////////////////////////////////////////////////画A区间/////////////// public void Bild_Zeigen_A(Canvas myCanvas, int A_x1, int A_x2, int A_y1, int A_y2, int B_x1, int B_x2, int B_y1, int B_y2, int C_x1, int C_x2, int C_y1, int C_y2, int achse_x, int achse_y) { Button_A_unten=true; Pfeil_Symbol_Zeigen(myCanvas, A_x1, A_x2, A_y1, A_y2, B_x1, B_x2, B_y1, B_y2, C_x1, C_x2, C_y1, C_y2, achse_x, achse_y); Graphics g=myCanvas.getGraphics(); g.setColor(new Color(0,0,0)); //////////////////////////////////////画坐标轴//////// g.drawLine(0,achse_x,800,achse_x); g.drawLine(achse_y,0,achse_y,520); //////////////////////////////////////画坐标轴结束//// g.setColor(new Color(0,255,0)); //设置当前颜色为绿色 g.drawRect(A_x1,A_y2,(A_x2-A_x1),(A_y1-A_y2)); Button_A_unten=false; } /////////////////////////////////////////////////////////////////////画A区间结束///////////// //////////////////////////////////////////////////////////////////画B区间///////////// public void Bild_Zeigen_B(Canvas myCanvas, int A_x1, int A_x2, int A_y1, int A_y2, int B_x1, int B_x2, int B_y1, int B_y2, int C_x1, int C_x2, int C_y1, int C_y2, int achse_x, int achse_y) { Button_B_unten=true; Pfeil_Symbol_Zeigen(myCanvas, A_x1, A_x2, A_y1, A_y2, B_x1, B_x2, B_y1, B_y2, C_x1, C_x2, C_y1, C_y2, achse_x, achse_y); Graphics g=myCanvas.getGraphics(); g.setColor(new Color(0,0,0)); /////////////////////////////////////////////画坐标轴///////// g.drawLine(0,achse_x,800,achse_x); g.drawLine(achse_y,0,achse_y,520); /////////////////////////////////////////////画坐标轴结束///// g.setColor(new Color(255,0,0)); //设置当前颜色为红色 g.drawRect(B_x1,B_y2,(B_x2-B_x1),(B_y1-B_y2)); Button_B_unten=false; } //////////////////////////////////////////////////////////////////画B区间结束////////// ///////////////////////////////////////////////////////////////////////画相加后的C区间///////// public void Bild_Zeigen_C(Canvas myCanvas, int A_x1, int A_x2, int A_y1, int A_y2, int B_x1, int B_x2, int B_y1, int B_y2, int C_x1, int C_x2, int C_y1, int C_y2, int achse_x, int achse_y) { Button_C_unten=true; //这个开关控制显示结果C Pfeil_Symbol_Zeigen(myCanvas, A_x1, A_x2, A_y1, A_y2, B_x1, B_x2, B_y1, B_y2, C_x1, C_x2, C_y1, C_y2, achse_x, achse_y); Graphics g=myCanvas.getGraphics(); g.setColor(new Color(0,0,0)); ////////////////////////////////////////////画坐标轴//////// g.drawLine(0,achse_x,800,achse_x); g.drawLine(achse_y,0,achse_y,520); ////////////////////////////////////////////画坐标轴结束//// g.setColor(new Color(0,0,255)); //设置当前颜色为兰色 g.drawRect(C_x1,C_y2,(C_x2-C_x1),(C_y1-C_y2)); Button_C_unten=false; } ///////////////////////////////////////////////////////////////////////画相加后的C区间结束///// /////////////////////////////////////////////////////////清屏函数开始//// public void resert(Canvas myCanvas) { Graphics g=myCanvas.getGraphics(); g.setColor(new Color(192,192,192)); int i=0; for(i=0;i<=600;i++) { g.drawLine(0,i,900,i); } } /////////////////////////////////////////////////////清屏函数结束//// //////////////////////////////////////////////////////////////画坐标轴的箭头以及相关符号/////////////// private void Pfeil_Symbol_Zeigen(Canvas myCanvas, int A_x1, int A_x2, int A_y1, int A_y2, int B_x1, int B_x2, int B_y1, int B_y2, int C_x1, int C_x2, int C_y1, int C_y2, int achse_x, int achse_y) { Graphics g=myCanvas.getGraphics(); g.setColor(new Color(0,0,0)); int Pfeil_x_x[]={800,790,790}; int Pfeil_x_y[]={achse_x,(achse_x-3),(achse_x+3)}; int Pfeil_x_zahl=Pfeil_x_x.length; Polygon p_x=new Polygon(Pfeil_x_x, Pfeil_x_y, Pfeil_x_zahl); g.fillPolygon(p_x); int Pfeil_y_x[]={achse_y,(achse_y-3),(achse_y+3)}; int Pfeil_y_y[]={0,10,10}; int Pfeil_y_zahl=Pfeil_y_x.length; Polygon p_y=new Polygon(Pfeil_y_x, Pfeil_y_y, Pfeil_y_zahl); g.fillPolygon(p_y); g.drawString("Im",(achse_y-20),10); g.drawString("Re",780,(achse_x+20)); if(Button_A_unten) { g.setColor(new Color(0,255,0)); //设置当前颜色为绿色 g.drawString("A",(A_x1+(int)((A_x2-A_x1)/2)),(A_y2+(int)((A_y1-A_y2)/2))); } if(Button_B_unten) { g.setColor(new Color(255,0,0)); //设置当前颜色为红色 g.drawString("B",(B_x1+(int)((B_x2-B_x1)/2)),(B_y2+(int)((B_y1-B_y2)/2))); } if(Button_C_unten) { g.setColor(new Color(0,0,255)); //设置当前颜色为蓝色 g.drawString("C",(C_x1+(int)((C_x2-C_x1)/2)),(C_y2+(int)((C_y1-C_y2)/2))); } } //////////////////////////////////////////////////////////////画坐标轴的箭头以及相关符号结束/////////// //////////////////////////////////////////////////////在屏幕上打印计算结果开始///////////////////////// public void Ergebnis_drucken(Canvas myCanvas, double C_x1, double C_x2, double C_y1, double C_y2) { Graphics g=myCanvas.getGraphics(); g.setColor(new Color(0,0,0)); String Ergebnis_C_x1, Ergebnis_C_x2, Ergebnis_C_y1, Ergebnis_C_y2; Ergebnis_C_x1=String.valueOf(C_x1); Ergebnis_C_x2=String.valueOf(C_x2); Ergebnis_C_y1=String.valueOf(C_y1); Ergebnis_C_y2=String.valueOf(C_y2); Font f=new Font("TimesRoman",Font.BOLD,15); g.setFont(f); g.drawString(("C=["+Ergebnis_C_x1+" , "+Ergebnis_C_x2+"]+j["+Ergebnis_C_y1+" , "+Ergebnis_C_y2+"]"), 30,550); } //////////////////////////////////////////////////////在屏幕上打印计算结果结束///////////////////////// ///////////////////////////////////////////////////打印错误信息开始//////////////////////////////////// public void Fehleranmeldung(Canvas myCanvas) { Graphics g=myCanvas.getGraphics(); g.setColor(new Color(0,0,0)); Font f=new Font("TimesRoman",Font.BOLD,30); g.setFont(f); g.drawString("Sie haben falsche Daten eingegeben!!!",50,250); } ///////////////////////////////////////////////////打印错误信息结束//////////////////////////////////// ////////////////////////////////////////////////////////////画坐标轴的刻度开始///////////////////////// public void Skala_Zeigen(Canvas myCanvas, int achse_x, int achse_y, double faktor_x, double faktor_y) { String s; Graphics g=myCanvas.getGraphics(); g.setColor(new Color(0,0,0)); ///////////////////////////画y轴的刻度开始////////////////////// if(achse_x<=100) { g.drawLine((achse_y-5),(achse_x+100),(achse_y+5),(achse_x+100)); g.drawLine((achse_y-5),(achse_x+200),(achse_y+5),(achse_x+200)); g.drawLine((achse_y-5),(achse_x+300),(achse_y+5),(achse_x+300)); g.drawLine((achse_y-5),(achse_x+400),(achse_y+5),(achse_x+400)); s=String.valueOf((float)(faktor_y*(-100))); g.drawString(s, (achse_y+10), (achse_x+100)); s=String.valueOf((float)(faktor_y*(-200))); g.drawString(s, (achse_y+10), (achse_x+200)); s=String.valueOf((float)(faktor_y*(-300))); g.drawString(s, (achse_y+10), (achse_x+300)); s=String.valueOf((float)(faktor_y*(-400))); g.drawString(s, (achse_y+10), (achse_x+400)); } if((achse_x>100)&&(achse_x<200)) { g.drawLine((achse_y-5),(achse_x-100),(achse_y+5),(achse_x-100)); g.drawLine((achse_y-5),(achse_x+100),(achse_y+5),(achse_x+100)); g.drawLine((achse_y-5),(achse_x+200),(achse_y+5),(achse_x+200)); g.drawLine((achse_y-5),(achse_x+300),(achse_y+5),(achse_x+300)); s=String.valueOf((float)(faktor_y*100)); g.drawString(s, (achse_y+10), (achse_x-100)); s=String.valueOf((float)(faktor_y*(-100))); g.drawString(s, (achse_y+10), (achse_x+100)); s=String.valueOf((float)(faktor_y*(-200))); g.drawString(s, (achse_y+10), (achse_x+200)); s=String.valueOf((float)(faktor_y*(-300))); g.drawString(s, (achse_y+10), (achse_x+300)); } if((achse_x>=200)&&(achse_x<300)) { g.drawLine((achse_y-5),(achse_x-200),(achse_y+5),(achse_x-200)); g.drawLine((achse_y-5),(achse_x-100),(achse_y+5),(achse_x-100)); g.drawLine((achse_y-5),(achse_x+100),(achse_y+5),(achse_x+100)); g.drawLine((achse_y-5),(achse_x+200),(achse_y+5),(achse_x+200)); s=String.valueOf((float)(faktor_y*200)); g.drawString(s, (achse_y+10), (achse_x-200)); s=String.valueOf((float)(faktor_y*100)); g.drawString(s, (achse_y+10), (achse_x-100)); s=String.valueOf((float)(faktor_y*(-100))); g.drawString(s, (achse_y+10), (achse_x+100)); s=String.valueOf((float)(faktor_y*(-200))); g.drawString(s, (achse_y+10), (achse_x+200)); } if((achse_x>=300)&&(achse_x<400)) { g.drawLine((achse_y-5),(achse_x-300),(achse_y+5),(achse_x-300)); g.drawLine((achse_y-5),(achse_x-200),(achse_y+5),(achse_x-200)); g.drawLine((achse_y-5),(achse_x-100),(achse_y+5),(achse_x-100)); g.drawLine((achse_y-5),(achse_x+100),(achse_y+5),(achse_x+100)); s=String.valueOf((float)(faktor_y*300)); g.drawString(s, (achse_y+10), (achse_x-300)); s=String.valueOf((float)(faktor_y*200)); g.drawString(s, (achse_y+10), (achse_x-200)); s=String.valueOf((float)(faktor_y*100)); g.drawString(s, (achse_y+10), (achse_x-100)); s=String.valueOf((float)(faktor_y*(-100))); g.drawString(s, (achse_y+10), (achse_x+100)); } if(achse_x>=400) { g.drawLine((achse_y-5),(achse_x-400),(achse_y+5),(achse_x-400)); g.drawLine((achse_y-5),(achse_x-300),(achse_y+5),(achse_x-300)); g.drawLine((achse_y-5),(achse_x-200),(achse_y+5),(achse_x-200)); g.drawLine((achse_y-5),(achse_x-100),(achse_y+5),(achse_x-100)); s=String.valueOf((float)(faktor_y*400)); g.drawString(s, (achse_y+10), (achse_x-400)); s=String.valueOf((float)(faktor_y*300)); g.drawString(s, (achse_y+10), (achse_x-300)); s=String.valueOf((float)(faktor_y*200)); g.drawString(s, (achse_y+10), (achse_x-200)); s=String.valueOf((float)(faktor_y*100)); g.drawString(s, (achse_y+10), (achse_x-100)); } ///////////////////////////画y轴的刻度结束////////////////////// ///////////////////////////画x轴的刻度开始////////////////////// if((achse_y<=150)&&(achse_y>=50)) { g.drawLine((achse_y+100),(achse_x-5),(achse_y+100),(achse_x+5)); g.drawLine((achse_y+200),(achse_x-5),(achse_y+200),(achse_x+5)); g.drawLine((achse_y+300),(achse_x-5),(achse_y+300),(achse_x+5)); g.drawLine((achse_y+400),(achse_x-5),(achse_y+400),(achse_x+5)); g.drawLine((achse_y+500),(achse_x-5),(achse_y+500),(achse_x+5)); s=String.valueOf((float)(faktor_x*100)); g.drawString(s,(achse_y+90),(achse_x+20)); s=String.valueOf((float)(faktor_x*200)); g.drawString(s,(achse_y+190),(achse_x+20)); s=String.valueOf((float)(faktor_x*300)); g.drawString(s,(achse_y+290),(achse_x+20)); s=String.valueOf((float)(faktor_x*400)); g.drawString(s,(achse_y+390),(achse_x+20)); s=String.valueOf((float)(faktor_x*500)); g.drawString(s,(achse_y+490),(achse_x+20)); } if((achse_y>150)&&(achse_y<=250)) { g.drawLine((achse_y-100),(achse_x-5),(achse_y-100),(achse_x+5)); g.drawLine((achse_y+100),(achse_x-5),(achse_y+100),(achse_x+5)); g.drawLine((achse_y+200),(achse_x-5),(achse_y+200),(achse_x+5)); g.drawLine((achse_y+300),(achse_x-5),(achse_y+300),(achse_x+5)); g.drawLine((achse_y+400),(achse_x-5),(achse_y+400),(achse_x+5)); s=String.valueOf((float)(faktor_x*(-100))); g.drawString(s,(achse_y-110),(achse_x+20)); s=String.valueOf((float)(faktor_x*100)); g.drawString(s,(achse_y+90),(achse_x+20)); s=String.valueOf((float)(faktor_x*200)); g.drawString(s,(achse_y+190),(achse_x+20)); s=String.valueOf((float)(faktor_x*300)); g.drawString(s,(achse_y+290),(achse_x+20)); s=String.valueOf((float)(faktor_x*400)); g.drawString(s,(achse_y+390),(achse_x+20)); } if((achse_y>250)&&(achse_y<=350)) { g.drawLine((achse_y-200),(achse_x-5),(achse_y-200),(achse_x+5)); g.drawLine((achse_y-100),(achse_x-5),(achse_y-100),(achse_x+5)); g.drawLine((achse_y+100),(achse_x-5),(achse_y+100),(achse_x+5)); g.drawLine((achse_y+200),(achse_x-5),(achse_y+200),(achse_x+5)); g.drawLine((achse_y+300),(achse_x-5),(achse_y+300),(achse_x+5)); s=String.valueOf((float)(faktor_x*(-200))); g.drawString(s,(achse_y-210),(achse_x+20)); s=String.valueOf((float)(faktor_x*(-100))); g.drawString(s,(achse_y-110),(achse_x+20)); s=String.valueOf((float)(faktor_x*100)); g.drawString(s,(achse_y+90),(achse_x+20)); s=String.valueOf((float)(faktor_x*200)); g.drawString(s,(achse_y+190),(achse_x+20)); s=String.valueOf((float)(faktor_x*300)); g.drawString(s,(achse_y+290),(achse_x+20)); } if((achse_y>350)&&(achse_y<=450)) { g.drawLine((achse_y-300),(achse_x-5),(achse_y-300),(achse_x+5)); g.drawLine((achse_y-200),(achse_x-5),(achse_y-200),(achse_x+5)); g.drawLine((achse_y-100),(achse_x-5),(achse_y-100),(achse_x+5)); g.drawLine((achse_y+100),(achse_x-5),(achse_y+100),(achse_x+5)); g.drawLine((achse_y+200),(achse_x-5),(achse_y+200),(achse_x+5)); s=String.valueOf((float)(faktor_x*(-300))); g.drawString(s,(achse_y-310),(achse_x+20)); s=String.valueOf((float)(faktor_x*(-200))); g.drawString(s,(achse_y-210),(achse_x+20)); s=String.valueOf((float)(faktor_x*(-100))); g.drawString(s,(achse_y-110),(achse_x+20)); s=String.valueOf((float)(faktor_x*100)); g.drawString(s,(achse_y+90),(achse_x+20)); s=String.valueOf((float)(faktor_x*200)); g.drawString(s,(achse_y+190),(achse_x+20)); } if((achse_y>450)&&(achse_y<=550)) { g.drawLine((achse_y-400),(achse_x-5),(achse_y-400),(achse_x+5)); g.drawLine((achse_y-300),(achse_x-5),(achse_y-300),(achse_x+5)); g.drawLine((achse_y-200),(achse_x-5),(achse_y-200),(achse_x+5)); g.drawLine((achse_y-100),(achse_x-5),(achse_y-100),(achse_x+5)); g.drawLine((achse_y+100),(achse_x-5),(achse_y+100),(achse_x+5)); s=String.valueOf((float)(faktor_x*(-400))); g.drawString(s,(achse_y-410),(achse_x+20)); s=String.valueOf((float)(faktor_x*(-300))); g.drawString(s,(achse_y-310),(achse_x+20)); s=String.valueOf((float)(faktor_x*(-200))); g.drawString(s,(achse_y-210),(achse_x+20)); s=String.valueOf((float)(faktor_x*(-100))); g.drawString(s,(achse_y-110),(achse_x+20)); s=String.valueOf((float)(faktor_x*100)); g.drawString(s,(achse_y+90),(achse_x+20)); } if((achse_y>550)&&(achse_y<=650)) { g.drawLine((achse_y-500),(achse_x-5),(achse_y-500),(achse_x+5)); g.drawLine((achse_y-400),(achse_x-5),(achse_y-400),(achse_x+5)); g.drawLine((achse_y-300),(achse_x-5),(achse_y-300),(achse_x+5)); g.drawLine((achse_y-200),(achse_x-5),(achse_y-200),(achse_x+5)); g.drawLine((achse_y-100),(achse_x-5),(achse_y-100),(achse_x+5)); s=String.valueOf((float)(faktor_x*(-500))); g.drawString(s,(achse_y-510),(achse_x+20)); s=String.valueOf((float)(faktor_x*(-400))); g.drawString(s,(achse_y-410),(achse_x+20)); s=String.valueOf((float)(faktor_x*(-300))); g.drawString(s,(achse_y-310),(achse_x+20)); s=String.valueOf((float)(faktor_x*(-200))); g.drawString(s,(achse_y-210),(achse_x+20)); s=String.valueOf((float)(faktor_x*(-100))); g.drawString(s,(achse_y-110),(achse_x+20)); } if(achse_y>650) { g.drawLine((achse_y-500),(achse_x-5),(achse_y-500),(achse_x+5)); g.drawLine((achse_y-400),(achse_x-5),(achse_y-400),(achse_x+5)); g.drawLine((achse_y-300),(achse_x-5),(achse_y-300),(achse_x+5)); g.drawLine((achse_y-200),(achse_x-5),(achse_y-200),(achse_x+5)); g.drawLine((achse_y-100),(achse_x-5),(achse_y-100),(achse_x+5)); s=String.valueOf((float)(faktor_x*(-500))); g.drawString(s,(achse_y-510),(achse_x+20)); s=String.valueOf((float)(faktor_x*(-400))); g.drawString(s,(achse_y-410),(achse_x+20)); s=String.valueOf((float)(faktor_x*(-300))); g.drawString(s,(achse_y-310),(achse_x+20)); s=String.valueOf((float)(faktor_x*(-200))); g.drawString(s,(achse_y-210),(achse_x+20)); s=String.valueOf((float)(faktor_x*(-100))); g.drawString(s,(achse_y-110),(achse_x+20)); } ///////////////////////////画x轴的刻度结束////////////////////// } ////////////////////////////////////////////////////////////画坐标轴的刻度结束///////////////////////// } //////////////////////////画图类结束//////////////////////////////////////////////////// ////////////////////////////坐标变换类开始/////////////////////////////////////////////// class KoordinatenTransformation extends Applet { int Transformation_A_x1, Transformation_A_x2, Transformation_A_y1, Transformation_A_y2; int Transformation_B_x1, Transformation_B_x2, Transformation_B_y1, Transformation_B_y2; int Transformation_C_x1, Transformation_C_x2, Transformation_C_y1, Transformation_C_y2; int zpunkte_x_add, zpunkte_y_add, zpunkte_x_div, zpunkte_y_div, zpunkte_x_multi, zpunkte_y_multi; int zpunkte_x_minus, zpunkte_y_minus; int rzpunkte_x_add, rzpunkte_y_add, rzpunkte_x_div, rzpunkte_y_div, rzpunkte_x_multi, rzpunkte_y_multi; int rzpunkte_x_minus, rzpunkte_y_minus; int eckpunkte_x_add[]=new int[16]; int eckpunkte_y_add[]=new int[16]; int eckpunkte_x_minus[]=new int[16]; int eckpunkte_y_minus[]=new int[16]; int eckpunkte_x_div[]=new int[16]; int eckpunkte_y_div[]=new int[16]; int eckpunkte_x_multi[]=new int[16]; int eckpunkte_y_multi[]=new int[16]; double x1,x2,y1,y2; double faktor_x, faktor_y; //这个变量是比例尺,x轴和y轴用不同的比例尺 double lange_x, lange_y; //这两个变量是最大和最小坐标所围成的一个矩形区域的边长,计算比例尺时用得着 int neu_achse_x, neu_achse_y; //坐标轴的位置是不断变化的,每次都要根据比例尺来确定新的坐标轴所在位置。 private double max(double a,double b,double c,double d,double e,double f) { double h=a; if(hb) h=b; if(h>c) h=c; if(h>d) h=d; if(h>e) h=e; if(h>f) h=f; return h; } //////////////////坐标变换函数////////////////////////////////////////////////////////////////////// public void Koordinaten_Transformation(double A_x1,double A_x2,double A_y1,double A_y2, double B_x1,double B_x2,double B_y1,double B_y2, double C_x1,double C_x2,double C_y1,double C_y2, boolean Knopf_Multi_unten, boolean Knopf_Div_unten, boolean Knopf_Add_unten, boolean Knopf_Minus_unten, boolean Knopf_zp_unten, boolean Knopf_rzp_unten) { lange_x=max(A_x1,A_x2,B_x1,B_x2,C_x1,C_x2)-min(A_x1,A_x2,B_x1,B_x2,C_x1,C_x2); lange_y=max(A_y1,A_y2,B_y1,B_y2,C_y1,C_y2)-min(A_y1,A_y2,B_y1,B_y2,C_y1,C_y2); faktor_x=lange_x/500.0; faktor_y=lange_y/300.0; if((A_y1>0)&&(B_y1>0)&&(C_y1>0)) //ABC在x轴上方时,重新计算比例尺 { if((A_y2>B_y2)&&(A_y2>C_y2)) { faktor_y=A_y2/300.0; } if((B_y2>A_y2)&&(B_y2>C_y2)) { faktor_y=B_y2/300.0; } if((C_y2>A_y2)&&(C_y2>B_y2)) { faktor_y=C_y2/300.0; } } if((A_y2<0)&&(B_y2<0)&&(C_y2<0)) //ABC在x轴下方时,重新计算比例尺 { if((A_y10)&&(B_x1>0)&&(C_x1>0)) //ABC在y轴右侧时,重新计算比例尺 { if((A_x2>B_x2)&&(A_x2>C_x2)) { faktor_x=A_x2/500.0; } if((B_x2>A_x2)&&(B_x2>C_x2)) { faktor_x=B_x2/500.0; } if((C_x2>A_x2)&&(C_x2>B_x2)) { faktor_x=C_x2/500.0; } } if((A_x2<0)&&(B_x2<0)&&(C_x2<0)) //ABC在y轴左侧时,重新计算比例尺 { if((A_x10)&&(B_y1>0)&&(C_y1>0)) //ABC在x轴上方 { neu_achse_x=500; } if((A_y2<0)&&(B_y2<0)&&(C_y2<0)) //ABC在x轴下方 { neu_achse_x=30; } if((A_y1<=0)&&(A_y2>=0)&&(B_y1>0)&&(C_y1>0)) //A横跨x轴,B和C在x轴上方 { neu_achse_x=500-(int)(A_y1/faktor_y*(-1)); } if((B_y1<=0)&&(B_y2>=0)&&(A_y1>0)&&(C_y1>0)) //B横跨x轴,A和C在x轴上方 { neu_achse_x=500-(int)(B_y1/faktor_y*(-1)); } if((C_y1<=0)&&(C_y2>=0)&&(A_y1>0)&&(B_y1>0)) //C横跨x轴,A和B在x轴上方 { neu_achse_x=500-(int)(C_y1/faktor_y*(-1)); } if((A_y1<=0)&&(A_y2>=0)&&(B_y2<0)&&(C_y2<0)) //A横跨x轴,B和C在x轴下方 { neu_achse_x=50+(int)(A_y2/faktor_y); } if((B_y1<=0)&&(B_y2>=0)&&(A_y2<0)&&(C_y2<0)) //B横跨x轴,A和C在x轴下方 { neu_achse_x=50+(int)(B_y2/faktor_y); } if((C_y1<=0)&&(C_y2>=0)&&(A_y2<0)&&(B_y2<0)) //C横跨x轴,A和B在x轴下方 { neu_achse_x=50+(int)(C_y2/faktor_y); } if((A_y1<=0)&&(A_y2>=0)&&(B_y1>0)&&(C_y2<0)) //A横跨x轴,B在x轴上方,C在x轴下方 { if(A_y2>=B_y2) neu_achse_x=50+(int)(A_y2/faktor_y); if(B_y2>=A_y2) neu_achse_x=50+(int)(B_y2/faktor_y); } if((A_y1<=0)&&(A_y2>=0)&&(C_y1>0)&&(B_y2<0)) //A横跨x轴,C在x轴上方,B在x轴下方 { if(A_y2>=C_y2) neu_achse_x=50+(int)(A_y2/faktor_y); if(C_y2>=A_y2) neu_achse_x=50+(int)(C_y2/faktor_y); } if((B_y1<=0)&&(B_y2>=0)&&(A_y1>0)&&(C_y2<0)) //B横跨x轴,A在x轴上方,C在x轴下方 { if(A_y2>=B_y2) neu_achse_x=50+(int)(A_y2/faktor_y); if(B_y2>=A_y2) neu_achse_x=50+(int)(B_y2/faktor_y); } if((B_y1<=0)&&(B_y2>=0)&&(C_y1>0)&&(A_y2<0)) //B横跨x轴,C在x轴上方,A在x轴下方 { if(B_y2>=C_y2) neu_achse_x=50+(int)(B_y2/faktor_y); if(C_y2>=B_y2) neu_achse_x=50+(int)(C_y2/faktor_y); } if((C_y1<=0)&&(C_y2>=0)&&(A_y1>0)&&(B_y2<0)) //C横跨x轴,A在x轴上方,B在x轴下方 { if(A_y2>=C_y2) neu_achse_x=50+(int)(A_y2/faktor_y); if(C_y2>=A_y2) neu_achse_x=50+(int)(C_y2/faktor_y); } if((C_y1<=0)&&(C_y2>=0)&&(B_y1>0)&&(C_y2<0)) //C横跨x轴,B在x轴上方,A在x轴下方 { if(C_y2>=B_y2) neu_achse_x=50+(int)(C_y2/faktor_y); if(B_y2>=C_y2) neu_achse_x=50+(int)(B_y2/faktor_y); } if((A_y1<=0)&&(B_y1<=0)&&(C_y1<=0)&&(A_y2>=0)&&(B_y2>=0)&&(C_y2>=0)) //ABC横跨x轴 { if((A_y2>=B_y2)&&(A_y2>=C_y2)) neu_achse_x=50+(int)(A_y2/faktor_y); if((B_y2>=A_y2)&&(B_y2>=C_y2)) neu_achse_x=50+(int)(B_y2/faktor_y); if((C_y2>=B_y2)&&(C_y2>=A_y2)) neu_achse_x=50+(int)(C_y2/faktor_y); } if((A_y1<=0)&&(B_y1<=0)&&(C_y1>0)&&(A_y2>=0)&&(B_y2>=0)) //AB横跨x轴,C在x轴上方 { if(A_y1<=B_y1) neu_achse_x=500-(int)(A_y1*(-1)/faktor_y); if(B_y1<=A_y1) neu_achse_x=500-(int)(B_y1*(-1)/faktor_y); } if((A_y1<=0)&&(B_y1<=0)&&(C_y2<0)&&(A_y2>=0)&&(B_y2>=0)) //AB横跨x轴,C在x轴下方 { if(A_y2>=B_y2) neu_achse_x=50+(int)(A_y2/faktor_y); if(B_y2>=A_y2) neu_achse_x=50+(int)(B_y2/faktor_y); } if((A_y1<=0)&&(C_y1<=0)&&(B_y1>0)&&(A_y2>=0)&&(C_y2>=0)) //AC横跨x轴,B在x轴上方 { if(A_y1<=C_y1) neu_achse_x=500-(int)(A_y1*(-1)/faktor_y); if(C_y1<=A_y1) neu_achse_x=500-(int)(C_y1*(-1)/faktor_y); } if((A_y1<=0)&&(C_y1<=0)&&(B_y2<0)&&(A_y2>=0)&&(C_y2>=0)) //AC横跨x轴,B在x轴下方 { if(A_y2>=C_y2) neu_achse_x=50+(int)(A_y2/faktor_y); if(C_y2>=A_y2) neu_achse_x=50+(int)(C_y2/faktor_y); } if((B_y1<=0)&&(C_y1<=0)&&(A_y1>0)&&(B_y2>=0)&&(C_y2>=0)) //BC横跨x轴,A在x轴上方 { if(B_y1<=C_y1) neu_achse_x=500-(int)(B_y1*(-1)/faktor_y); if(C_y1<=B_y1) neu_achse_x=500-(int)(C_y1*(-1)/faktor_y); } if((B_y1<=0)&&(C_y1<=0)&&(A_y2<0)&&(B_y2>=0)&&(C_y2>=0)) //BC横跨x轴,A在x轴下方 { if(B_y2>=C_y2) neu_achse_x=50+(int)(B_y2/faktor_y); if(C_y2>=B_y2) neu_achse_x=50+(int)(C_y2/faktor_y); } if((A_y2<0)&&(B_y1>0)&&(C_y1>0)) //A在x轴下方,BC在x轴上方 { neu_achse_x=500-(int)(A_y1*(-1)/faktor_y); } if((B_y2<0)&&(A_y1>0)&&(C_y1>0)) //B在x轴下方,AC在x轴上方 { neu_achse_x=500-(int)(B_y1*(-1)/faktor_y); } if((C_y2<0)&&(B_y1>0)&&(A_y1>0)) //C在x轴下方,AB在x轴上方 { neu_achse_x=500-(int)(C_y1*(-1)/faktor_y); } if((A_y2<0)&&(B_y2<0)&&(C_y1>0)) //AB在x轴下方,C在x轴上方 { neu_achse_x=50+(int)(C_y2/faktor_y); } if((A_y2<0)&&(C_y2<0)&&(B_y1>0)) //AC在x轴下方,B在x轴上方 { neu_achse_x=50+(int)(B_y2/faktor_y); } if((C_y2<0)&&(B_y2<0)&&(A_y1>0)) //BC在x轴下方,A在x轴上方 { neu_achse_x=50+(int)(A_y2/faktor_y); } /////////////////////////确定x轴所在位置结束//////////////////////////////////////////////// /////////////////////////确定y轴所在位置//////////////////////////////////////////////////// if((A_x1>0)&&(B_x1>0)&&(C_x1>0)) //ABC在y轴右侧 { neu_achse_y=50; } if((A_x2<0)&&(B_x2<0)&&(C_x2<0)) //ABC在y轴左侧 { neu_achse_y=780; } if((A_x1<=0)&&(A_x2>=0)&&(B_x1>0)&&(C_x1>0)) //A横跨y轴,BC在y轴右侧 { neu_achse_y=50+(int)(A_x1/faktor_x*(-1)); } if((A_x1<=0)&&(A_x2>=0)&&(B_x2<0)&&(C_x2<0)) //A横跨y轴,BC在y轴左侧 { if((A_x1<=B_x1)&&(A_x1<=C_x1)) neu_achse_y=50+(int)(A_x1*(-1)/faktor_x); if((B_x1<=A_x1)&&(B_x1<=C_x1)) neu_achse_y=50+(int)(B_x1*(-1)/faktor_x); if((C_x1<=A_x1)&&(C_x1<=B_x1)) neu_achse_y=50+(int)(C_x1*(-1)/faktor_x); } if((A_x1<=0)&&(A_x2>=0)&&(B_x2<0)&&(C_x1>0)) //A横跨y轴,B在y轴左侧,C在y轴右侧 { if(A_x1<=B_x1) neu_achse_y=50+(int)(A_x1*(-1)/faktor_x); if(B_x1<=A_x1) neu_achse_y=50+(int)(B_x1*(-1)/faktor_x); } if((A_x1<=0)&&(A_x2>=0)&&(B_x1>0)&&(C_x2<0)) //A横跨y轴,C在y轴左侧,B在y轴右侧 { if(A_x1<=C_x1) neu_achse_y=50+(int)(A_x1*(-1)/faktor_x); if(C_x1<=A_x1) neu_achse_y=50+(int)(C_x1*(-1)/faktor_x); } if((B_x1<=0)&&(B_x2>=0)&&(A_x1>0)&&(C_x1>0)) //B横跨y轴,AC在y轴右侧 { neu_achse_y=50+(int)(B_x1/faktor_x*(-1)); } if((B_x1<=0)&&(B_x2>=0)&&(A_x2<0)&&(C_x2<0)) //B横跨y轴,AC在y轴左侧 { if((A_x1<=B_x1)&&(A_x1<=C_x1)) neu_achse_y=50+(int)(A_x1*(-1)/faktor_x); if((B_x1<=A_x1)&&(B_x1<=C_x1)) neu_achse_y=50+(int)(B_x1*(-1)/faktor_x); if((C_x1<=A_x1)&&(C_x1<=B_x1)) neu_achse_y=50+(int)(C_x1*(-1)/faktor_x); } if((B_x1<=0)&&(B_x2>=0)&&(A_x2<0)&&(C_x1>0)) //B横跨y轴,A在y轴左侧,C在y轴右侧 { if((A_x1<=B_x1)&&(A_x1<=C_x1)) neu_achse_y=50+(int)(A_x1*(-1)/faktor_x); if((B_x1<=A_x1)&&(B_x1<=C_x1)) neu_achse_y=50+(int)(B_x1*(-1)/faktor_x); } if((B_x1<=0)&&(B_x2>=0)&&(A_x1>0)&&(C_x2<0)) //B横跨y轴,C在y轴左侧,A在y轴右侧 { if(B_x1<=C_x1) neu_achse_y=50+(int)(B_x1*(-1)/faktor_x); if(C_x1<=B_x1) neu_achse_y=50+(int)(C_x1*(-1)/faktor_x); } if((C_x1<=0)&&(C_x2>=0)&&(A_x1>0)&&(B_x1>0)) //C横跨y轴,AB在y轴右侧 { neu_achse_y=50+(int)(C_x1/faktor_x*(-1)); } if((C_x1<=0)&&(C_x2>=0)&&(A_x2<0)&&(B_x2<0)) //C横跨y轴,AB在y轴左侧 { if((A_x1<=B_x1)&&(A_x1<=C_x1)) neu_achse_y=50+(int)(A_x1*(-1)/faktor_x); if((B_x1<=A_x1)&&(B_x1<=C_x1)) neu_achse_y=50+(int)(B_x1*(-1)/faktor_x); if((C_x1<=A_x1)&&(C_x1<=B_x1)) neu_achse_y=50+(int)(C_x1*(-1)/faktor_x); } if((C_x1<=0)&&(C_x2>=0)&&(A_x2<0)&&(B_x1>0)) //C横跨y轴,A在y轴左侧,B在y轴右侧 { if(A_x1<=C_x1) neu_achse_y=50+(int)(A_x1*(-1)/faktor_x); if(C_x1<=A_x1) neu_achse_y=50+(int)(C_x1*(-1)/faktor_x); } if((C_x1<=0)&&(C_x2>=0)&&(B_x2<0)&&(A_x1>0)) //C横跨y轴,B在y轴左侧,A在y轴右侧 { if(B_x1<=C_x1) neu_achse_y=50+(int)(B_x1*(-1)/faktor_x); if(C_x1<=B_x1) neu_achse_y=50+(int)(C_x1*(-1)/faktor_x); } if((A_x1<=0)&&(B_x1<=0)&&(C_x1<=0)&&(A_x2>=0)&&(B_x2>=0)&&(C_x2>=0)) //ABC横跨y轴 { if((A_x1<=B_x1)&&(A_x1<=C_x1)) neu_achse_y=50+(int)(A_x1*(-1)/faktor_x); if((B_x1<=A_x1)&&(B_x1<=C_x1)) neu_achse_y=50+(int)(B_x1*(-1)/faktor_x); if((C_x1<=B_x1)&&(C_x1<=A_x1)) neu_achse_y=50+(int)(C_x1*(-1)/faktor_x); } if((A_x1<=0)&&(B_x1<=0)&&(C_x1>0)&&(A_x2>=0)&&(B_x2>=0)) //AB横跨y轴,C在y轴右侧 { if(A_x1<=B_x1) neu_achse_y=50+(int)(A_x1*(-1)/faktor_x); if(B_x1<=A_x1) neu_achse_y=50+(int)(B_x1*(-1)/faktor_x); } if((A_x1<=0)&&(B_x1<=0)&&(C_x2<0)&&(A_x2>=0)&&(B_x2>=0)) //AB横跨y轴,C在y轴左侧 { if((A_x1<=B_x1)&&(A_x1<=C_x1)) neu_achse_y=50+(int)(A_x1*(-1)/faktor_x); if((B_x1<=A_x1)&&(B_x1<=C_x1)) neu_achse_y=50+(int)(B_x1*(-1)/faktor_x); if((C_x1<=B_x1)&&(C_x1<=A_x1)) neu_achse_y=50+(int)(C_x1*(-1)/faktor_x); } if((A_x1<=0)&&(C_x1<=0)&&(B_x1>0)&&(A_x2>=0)&&(C_x2>=0)) //AC横跨y轴,B在y轴右侧 { if(A_x1<=C_x1) neu_achse_y=50+(int)(A_x1*(-1)/faktor_x); if(C_x1<=A_x1) neu_achse_y=50+(int)(C_x1*(-1)/faktor_x); } if((A_x1<=0)&&(C_x1<=0)&&(B_x2<0)&&(A_x2>=0)&&(C_x2>=0)) //AC横跨y轴,B在y轴左侧 { if((A_x1<=B_x1)&&(A_x1<=C_x1)) neu_achse_y=50+(int)(A_x1*(-1)/faktor_x); if((B_x1<=A_x1)&&(B_x1<=C_x1)) neu_achse_y=50+(int)(B_x1*(-1)/faktor_x); if((C_x1<=B_x1)&&(C_x1<=A_x1)) neu_achse_y=50+(int)(C_x1*(-1)/faktor_x); } if((B_x1<=0)&&(C_x1<=0)&&(A_x1>0)&&(B_x2>=0)&&(C_x2>=0)) //BC横跨y轴,A在y轴右侧 { if(B_x1<=C_x1) neu_achse_y=50+(int)(B_x1*(-1)/faktor_x); if(C_x1<=B_x1) neu_achse_y=50+(int)(C_x1*(-1)/faktor_x); } if((B_x1<=0)&&(C_x1<=0)&&(A_x2<0)&&(B_x2>=0)&&(C_x2>=0)) //BC横跨y轴,A在y轴左侧 { if((A_x1<=B_x1)&&(A_x1<=C_x1)) neu_achse_y=50+(int)(A_x1*(-1)/faktor_x); if((B_x1<=A_x1)&&(B_x1<=C_x1)) neu_achse_y=50+(int)(B_x1*(-1)/faktor_x); if((C_x1<=B_x1)&&(C_x1<=A_x1)) neu_achse_y=50+(int)(C_x1*(-1)/faktor_x); } if((A_x2<0)&&(B_x1>0)&&(C_x1>0)) //A在y轴左侧,BC在y轴右侧 { neu_achse_y=50+(int)(A_x1*(-1)/faktor_x); } if((B_x2<0)&&(A_x1>0)&&(C_x1>0)) //B在y轴左侧,AC在y轴右侧 { neu_achse_y=50+(int)(B_x1*(-1)/faktor_x); } if((C_x2<0)&&(B_x1>0)&&(A_x1>0)) //C在y轴左侧,AB在y轴右侧 { neu_achse_y=50+(int)(C_x1*(-1)/faktor_x); } if((A_x2<0)&&(B_x2<0)&&(C_x1>0)) //AB在y轴左侧,C在y轴右侧 { if(A_x1<=B_x1) neu_achse_y=50+(int)(A_x1*(-1)/faktor_x); if(B_x1<=A_x1) neu_achse_y=50+(int)(B_x1*(-1)/faktor_x); } if((A_x2<0)&&(C_x2<0)&&(B_x1>0)) //AC在y轴左侧,B在y轴右侧 { if(A_x1<=C_x1) neu_achse_y=50+(int)(A_x1*(-1)/faktor_x); if(C_x1<=A_x1) neu_achse_y=50+(int)(C_x1*(-1)/faktor_x); } if((C_x2<0)&&(B_x2<0)&&(A_x1>0)) //BC在y轴左侧,A在y轴右侧 { if(B_x1<=C_x1) neu_achse_y=50+(int)(B_x1*(-1)/faktor_x); if(C_x1<=B_x1) neu_achse_y=50+(int)(C_x1*(-1)/faktor_x); } /////////////////////////确定y轴所在位置结束//////////////////////////////////////////////// Transformation_A_x1=neu_achse_y+(int)(A_x1/faktor_x); Transformation_A_x2=neu_achse_y+(int)(A_x2/faktor_x); Transformation_A_y1=neu_achse_x-(int)(A_y1/faktor_y); Transformation_A_y2=neu_achse_x-(int)(A_y2/faktor_y); Transformation_B_x1=neu_achse_y+(int)(B_x1/faktor_x); Transformation_B_x2=neu_achse_y+(int)(B_x2/faktor_x); Transformation_B_y1=neu_achse_x-(int)(B_y1/faktor_y); Transformation_B_y2=neu_achse_x-(int)(B_y2/faktor_y); Transformation_C_x1=neu_achse_y+(int)(C_x1/faktor_x); Transformation_C_x2=neu_achse_y+(int)(C_x2/faktor_x); Transformation_C_y1=neu_achse_x-(int)(C_y1/faktor_y); Transformation_C_y2=neu_achse_x-(int)(C_y2/faktor_y); if(Knopf_Add_unten&&Knopf_zp_unten) { x1=A_x1+Math.random()*(A_x2-A_x1); x2=A_y1+Math.random()*(A_y2-A_y1); y1=B_x1+Math.random()*(B_x2-B_x1); y2=B_y1+Math.random()*(B_y2-B_y1); zpunkte_x_add=neu_achse_y+(int)((x1+y1)/faktor_x); zpunkte_y_add=neu_achse_x-(int)((x2+y2)/faktor_y); } /******************************************************/ if(Knopf_Minus_unten&&Knopf_zp_unten) { x1=A_x1+Math.random()*(A_x2-A_x1); x2=A_y1+Math.random()*(A_y2-A_y1); y1=B_x2*(-1)+Math.random()*(B_x1*(-1)-B_x2*(-1)); y2=B_y2*(-1)+Math.random()*(B_y1*(-1)-B_y2*(-1)); zpunkte_x_minus=neu_achse_y+(int)((x1+y1)/faktor_x); zpunkte_y_minus=neu_achse_x-(int)((x2+y2)/faktor_y); } /******************************************************/ if(Knopf_Multi_unten&&Knopf_zp_unten) { x1=A_x1+Math.random()*(A_x2-A_x1); x2=A_y1+Math.random()*(A_y2-A_y1); y1=B_x1+Math.random()*(B_x2-B_x1); y2=B_y1+Math.random()*(B_y2-B_y1); zpunkte_x_multi=neu_achse_y+(int)((x1*y1-x2*y2)/faktor_x); zpunkte_y_multi=neu_achse_x-(int)((x1*y2+x2*y1)/faktor_y); } if(Knopf_Div_unten&&Knopf_zp_unten) { x1=A_x1+Math.random()*(A_x2-A_x1); x2=A_y1+Math.random()*(A_y2-A_y1); y1=B_x1+Math.random()*(B_x2-B_x1); y2=B_y1+Math.random()*(B_y2-B_y1); zpunkte_x_div=neu_achse_y+(int)(((x1*y1+x2*y2)/(y1*y1+y2*y2))/faktor_x); zpunkte_y_div=neu_achse_x-(int)(((x2*y1-x1*y2)/(y1*y1+y2*y2))/faktor_y); } if(Knopf_Add_unten&&Knopf_rzp_unten) { int k=0; k=(int)(Math.random()*4); switch(k) { case 0: x1=A_x1; x2=A_y1+Math.random()*(A_y2-A_y1); break; case 1: x1=A_x2; x2=A_y1+Math.random()*(A_y2-A_y1); break; case 2: x1=A_x1+Math.random()*(A_x2-A_x1); x2=A_y1; break; case 3: x1=A_x1+Math.random()*(A_x2-A_x1); x2=A_y2; break; } k=(int)(Math.random()*4); switch(k) { case 0: y1=B_x1; y2=B_y1+Math.random()*(B_y2-B_y1); break; case 1: y1=B_x2; y2=B_y1+Math.random()*(B_y2-B_y1); break; case 2: y1=B_x1+Math.random()*(B_x2-B_x1); y2=B_y1; break; case 3: y1=B_x1+Math.random()*(B_x2-B_x1); y2=B_y2; break; } rzpunkte_x_add=neu_achse_y+(int)((x1+y1)/faktor_x); rzpunkte_y_add=neu_achse_x-(int)((x2+y2)/faktor_y); } /******************************************************/ if(Knopf_Minus_unten&&Knopf_rzp_unten) { int k=0; k=(int)(Math.random()*4); switch(k) { case 0: x1=A_x1; x2=A_y1+Math.random()*(A_y2-A_y1); break; case 1: x1=A_x2; x2=A_y1+Math.random()*(A_y2-A_y1); break; case 2: x1=A_x1+Math.random()*(A_x2-A_x1); x2=A_y1; break; case 3: x1=A_x1+Math.random()*(A_x2-A_x1); x2=A_y2; break; } k=(int)(Math.random()*4); switch(k) { case 0: y1=B_x2*(-1); y2=B_y2*(-1)+Math.random()*(B_y1*(-1)-B_y2*(-1)); break; case 1: y1=B_x1*(-1); y2=B_y2*(-1)+Math.random()*(B_y1*(-1)-B_y2*(-1)); break; case 2: y1=B_x2*(-1)+Math.random()*(B_x1*(-1)-B_x2*(-1)); y2=B_y2*(-1); break; case 3: y1=B_x2*(-1)+Math.random()*(B_x1*(-1)-B_x2*(-1)); y2=B_y1*(-1); break; } rzpunkte_x_minus=neu_achse_y+(int)((x1+y1)/faktor_x); rzpunkte_y_minus=neu_achse_x-(int)((x2+y2)/faktor_y); } /******************************************************/ if(Knopf_Multi_unten&&Knopf_rzp_unten) { int k=0; k=(int)(Math.random()*4); switch(k) { case 0: x1=A_x1; x2=A_y1+Math.random()*(A_y2-A_y1); break; case 1: x1=A_x2; x2=A_y1+Math.random()*(A_y2-A_y1); break; case 2: x1=A_x1+Math.random()*(A_x2-A_x1); x2=A_y1; break; case 3: x1=A_x1+Math.random()*(A_x2-A_x1); x2=A_y2; break; } k=(int)(Math.random()*4); switch(k) { case 0: y1=B_x1; y2=B_y1+Math.random()*(B_y2-B_y1); break; case 1: y1=B_x2; y2=B_y1+Math.random()*(B_y2-B_y1); break; case 2: y1=B_x1+Math.random()*(B_x2-B_x1); y2=B_y1; break; case 3: y1=B_x1+Math.random()*(B_x2-B_x1); y2=B_y2; break; } rzpunkte_x_multi=neu_achse_y+(int)((x1*y1-x2*y2)/faktor_x); rzpunkte_y_multi=neu_achse_x-(int)((x1*y2+x2*y1)/faktor_y); } if(Knopf_Div_unten&&Knopf_rzp_unten) { int k=0; k=(int)(Math.random()*4); switch(k) { case 0: x1=A_x1; x2=A_y1+Math.random()*(A_y2-A_y1); break; case 1: x1=A_x2; x2=A_y1+Math.random()*(A_y2-A_y1); break; case 2: x1=A_x1+Math.random()*(A_x2-A_x1); x2=A_y1; break; case 3: x1=A_x1+Math.random()*(A_x2-A_x1); x2=A_y2; break; } k=(int)(Math.random()*4); switch(k) { case 0: y1=B_x1; y2=B_y1+Math.random()*(B_y2-B_y1); break; case 1: y1=B_x2; y2=B_y1+Math.random()*(B_y2-B_y1); break; case 2: y1=B_x1+Math.random()*(B_x2-B_x1); y2=B_y1; break; case 3: y1=B_x1+Math.random()*(B_x2-B_x1); y2=B_y2; break; } rzpunkte_x_div=neu_achse_y+(int)(((x1*y1+x2*y2)/(y1*y1+y2*y2))/faktor_x); rzpunkte_y_div=neu_achse_x-(int)(((x2*y1-x1*y2)/(y1*y1+y2*y2))/faktor_y); } eckpunkte_x_add[0]=neu_achse_y+(int)((A_x1+B_x1)/faktor_x); eckpunkte_y_add[0]=neu_achse_x-(int)((A_y1+B_y1)/faktor_y); eckpunkte_x_add[1]=neu_achse_y+(int)((A_x1+B_x2)/faktor_x); eckpunkte_y_add[1]=neu_achse_x-(int)((A_y1+B_y1)/faktor_y); eckpunkte_x_add[2]=neu_achse_y+(int)((A_x1+B_x1)/faktor_x); eckpunkte_y_add[2]=neu_achse_x-(int)((A_y1+B_y2)/faktor_y); eckpunkte_x_add[3]=neu_achse_y+(int)((A_x1+B_x2)/faktor_x); eckpunkte_y_add[3]=neu_achse_x-(int)((A_y1+B_y2)/faktor_y); eckpunkte_x_add[4]=neu_achse_y+(int)((A_x2+B_x1)/faktor_x); eckpunkte_y_add[4]=neu_achse_x-(int)((A_y1+B_y1)/faktor_y); eckpunkte_x_add[5]=neu_achse_y+(int)((A_x2+B_x2)/faktor_x); eckpunkte_y_add[5]=neu_achse_x-(int)((A_y1+B_y1)/faktor_y); eckpunkte_x_add[6]=neu_achse_y+(int)((A_x2+B_x1)/faktor_x); eckpunkte_y_add[6]=neu_achse_x-(int)((A_y1+B_y2)/faktor_y); eckpunkte_x_add[7]=neu_achse_y+(int)((A_x2+B_x2)/faktor_x); eckpunkte_y_add[7]=neu_achse_x-(int)((A_y1+B_y2)/faktor_y); eckpunkte_x_add[8]=neu_achse_y+(int)((A_x1+B_x1)/faktor_x); eckpunkte_y_add[8]=neu_achse_x-(int)((A_y2+B_y1)/faktor_y); eckpunkte_x_add[9]=neu_achse_y+(int)((A_x1+B_x2)/faktor_x); eckpunkte_y_add[9]=neu_achse_x-(int)((A_y2+B_y1)/faktor_y); eckpunkte_x_add[10]=neu_achse_y+(int)((A_x1+B_x1)/faktor_x); eckpunkte_y_add[10]=neu_achse_x-(int)((A_y2+B_y2)/faktor_y); eckpunkte_x_add[11]=neu_achse_y+(int)((A_x1+B_x2)/faktor_x); eckpunkte_y_add[11]=neu_achse_x-(int)((A_y2+B_y2)/faktor_y); eckpunkte_x_add[12]=neu_achse_y+(int)((A_x2+B_x1)/faktor_x); eckpunkte_y_add[12]=neu_achse_x-(int)((A_y2+B_y1)/faktor_y); eckpunkte_x_add[13]=neu_achse_y+(int)((A_x2+B_x2)/faktor_x); eckpunkte_y_add[13]=neu_achse_x-(int)((A_y2+B_y1)/faktor_y); eckpunkte_x_add[14]=neu_achse_y+(int)((A_x2+B_x1)/faktor_x); eckpunkte_y_add[14]=neu_achse_x-(int)((A_y2+B_y2)/faktor_y); eckpunkte_x_add[15]=neu_achse_y+(int)((A_x2+B_x2)/faktor_x); eckpunkte_y_add[15]=neu_achse_x-(int)((A_y2+B_y2)/faktor_y); /******************************************************/ eckpunkte_x_minus[0]=neu_achse_y+(int)((A_x1+B_x2*(-1))/faktor_x); eckpunkte_y_minus[0]=neu_achse_x-(int)((A_y1+B_y2*(-1))/faktor_y); eckpunkte_x_minus[1]=neu_achse_y+(int)((A_x1+B_x1*(-1))/faktor_x); eckpunkte_y_minus[1]=neu_achse_x-(int)((A_y1+B_y2*(-1))/faktor_y); eckpunkte_x_minus[2]=neu_achse_y+(int)((A_x1+B_x2*(-1))/faktor_x); eckpunkte_y_minus[2]=neu_achse_x-(int)((A_y1+B_y1*(-1))/faktor_y); eckpunkte_x_minus[3]=neu_achse_y+(int)((A_x1+B_x1*(-1))/faktor_x); eckpunkte_y_minus[3]=neu_achse_x-(int)((A_y1+B_y1*(-1))/faktor_y); eckpunkte_x_minus[4]=neu_achse_y+(int)((A_x2+B_x2*(-1))/faktor_x); eckpunkte_y_minus[4]=neu_achse_x-(int)((A_y1+B_y2*(-1))/faktor_y); eckpunkte_x_minus[5]=neu_achse_y+(int)((A_x2+B_x1*(-1))/faktor_x); eckpunkte_y_minus[5]=neu_achse_x-(int)((A_y1+B_y2*(-1))/faktor_y); eckpunkte_x_minus[6]=neu_achse_y+(int)((A_x2+B_x2*(-1))/faktor_x); eckpunkte_y_minus[6]=neu_achse_x-(int)((A_y1+B_y1*(-1))/faktor_y); eckpunkte_x_minus[7]=neu_achse_y+(int)((A_x2+B_x1*(-1))/faktor_x); eckpunkte_y_minus[7]=neu_achse_x-(int)((A_y1+B_y1*(-1))/faktor_y); eckpunkte_x_minus[8]=neu_achse_y+(int)((A_x1+B_x2*(-1))/faktor_x); eckpunkte_y_minus[8]=neu_achse_x-(int)((A_y2+B_y2*(-1))/faktor_y); eckpunkte_x_minus[9]=neu_achse_y+(int)((A_x1+B_x1*(-1))/faktor_x); eckpunkte_y_minus[9]=neu_achse_x-(int)((A_y2+B_y2*(-1))/faktor_y); eckpunkte_x_minus[10]=neu_achse_y+(int)((A_x1+B_x2*(-1))/faktor_x); eckpunkte_y_minus[10]=neu_achse_x-(int)((A_y2+B_y1*(-1))/faktor_y); eckpunkte_x_minus[11]=neu_achse_y+(int)((A_x1+B_x1*(-1))/faktor_x); eckpunkte_y_minus[11]=neu_achse_x-(int)((A_y2+B_y1*(-1))/faktor_y); eckpunkte_x_minus[12]=neu_achse_y+(int)((A_x2+B_x2*(-1))/faktor_x); eckpunkte_y_minus[12]=neu_achse_x-(int)((A_y2+B_y2*(-1))/faktor_y); eckpunkte_x_minus[13]=neu_achse_y+(int)((A_x2+B_x1*(-1))/faktor_x); eckpunkte_y_minus[13]=neu_achse_x-(int)((A_y2+B_y2*(-1))/faktor_y); eckpunkte_x_minus[14]=neu_achse_y+(int)((A_x2+B_x2*(-1))/faktor_x); eckpunkte_y_minus[14]=neu_achse_x-(int)((A_y2+B_y1*(-1))/faktor_y); eckpunkte_x_minus[15]=neu_achse_y+(int)((A_x2+B_x1*(-1))/faktor_x); eckpunkte_y_minus[15]=neu_achse_x-(int)((A_y2+B_y1*(-1))/faktor_y); /******************************************************/ eckpunkte_x_multi[0]=neu_achse_y+(int)((A_x1*B_x1-A_y1*B_y1)/faktor_x); eckpunkte_y_multi[0]=neu_achse_x-(int)((A_x1*B_y1+A_y1*B_x1)/faktor_y); eckpunkte_x_multi[1]=neu_achse_y+(int)((A_x1*B_x2-A_y1*B_y1)/faktor_x); eckpunkte_y_multi[1]=neu_achse_x-(int)((A_x1*B_y1+A_y1*B_x2)/faktor_y); eckpunkte_x_multi[2]=neu_achse_y+(int)((A_x1*B_x1-A_y1*B_y2)/faktor_x); eckpunkte_y_multi[2]=neu_achse_x-(int)((A_x1*B_y2+A_y1*B_x1)/faktor_y); eckpunkte_x_multi[3]=neu_achse_y+(int)((A_x1*B_x2-A_y1*B_y2)/faktor_x); eckpunkte_y_multi[3]=neu_achse_x-(int)((A_x1*B_y2+A_y1*B_x2)/faktor_y); eckpunkte_x_multi[4]=neu_achse_y+(int)((A_x2*B_x1-A_y1*B_y1)/faktor_x); eckpunkte_y_multi[4]=neu_achse_x-(int)((A_x2*B_y1+A_y1*B_x1)/faktor_y); eckpunkte_x_multi[5]=neu_achse_y+(int)((A_x2*B_x2-A_y1*B_y1)/faktor_x); eckpunkte_y_multi[5]=neu_achse_x-(int)((A_x2*B_y1+A_y1*B_x2)/faktor_y); eckpunkte_x_multi[6]=neu_achse_y+(int)((A_x2*B_x1-A_y1*B_y2)/faktor_x); eckpunkte_y_multi[6]=neu_achse_x-(int)((A_x2*B_y2+A_y1*B_x1)/faktor_y); eckpunkte_x_multi[7]=neu_achse_y+(int)((A_x2*B_x2-A_y1*B_y2)/faktor_x); eckpunkte_y_multi[7]=neu_achse_x-(int)((A_x2*B_y2+A_y1*B_x2)/faktor_y); eckpunkte_x_multi[8]=neu_achse_y+(int)((A_x1*B_x1-A_y2*B_y1)/faktor_x); eckpunkte_y_multi[8]=neu_achse_x-(int)((A_x1*B_y1+A_y2*B_x1)/faktor_y); eckpunkte_x_multi[9]=neu_achse_y+(int)((A_x1*B_x2-A_y2*B_y1)/faktor_x); eckpunkte_y_multi[9]=neu_achse_x-(int)((A_x1*B_y1+A_y2*B_x2)/faktor_y); eckpunkte_x_multi[10]=neu_achse_y+(int)((A_x1*B_x1-A_y2*B_y2)/faktor_x); eckpunkte_y_multi[10]=neu_achse_x-(int)((A_x1*B_y2+A_y2*B_x1)/faktor_y); eckpunkte_x_multi[11]=neu_achse_y+(int)((A_x1*B_x2-A_y2*B_y2)/faktor_x); eckpunkte_y_multi[11]=neu_achse_x-(int)((A_x1*B_y2+A_y2*B_x2)/faktor_y); eckpunkte_x_multi[12]=neu_achse_y+(int)((A_x2*B_x1-A_y2*B_y1)/faktor_x); eckpunkte_y_multi[12]=neu_achse_x-(int)((A_x2*B_y1+A_y2*B_x1)/faktor_y); eckpunkte_x_multi[13]=neu_achse_y+(int)((A_x2*B_x2-A_y2*B_y1)/faktor_x); eckpunkte_y_multi[13]=neu_achse_x-(int)((A_x2*B_y1+A_y2*B_x2)/faktor_y); eckpunkte_x_multi[14]=neu_achse_y+(int)((A_x2*B_x1-A_y2*B_y2)/faktor_x); eckpunkte_y_multi[14]=neu_achse_x-(int)((A_x2*B_y2+A_y2*B_x1)/faktor_y); eckpunkte_x_multi[15]=neu_achse_y+(int)((A_x2*B_x2-A_y2*B_y2)/faktor_x); eckpunkte_y_multi[15]=neu_achse_x-(int)((A_x2*B_y2+A_y2*B_x2)/faktor_y); eckpunkte_x_div[0]=neu_achse_y+(int)(((A_x1*B_x1+A_y1*B_y1)/(B_x1*B_x1+B_y1*B_y1))/faktor_x); eckpunkte_y_div[0]=neu_achse_x-(int)(((A_y1*B_x1-A_x1*B_y1)/(B_x1*B_x1+B_y1*B_y1))/faktor_y); eckpunkte_x_div[1]=neu_achse_y+(int)(((A_x1*B_x2+A_y1*B_y1)/(B_x2*B_x2+B_y1*B_y1))/faktor_x); eckpunkte_y_div[1]=neu_achse_x-(int)(((A_y1*B_x2-A_x1*B_y1)/(B_x2*B_x2+B_y1*B_y1))/faktor_y); eckpunkte_x_div[2]=neu_achse_y+(int)(((A_x1*B_x1+A_y1*B_y2)/(B_x1*B_x1+B_y2*B_y2))/faktor_x); eckpunkte_y_div[2]=neu_achse_x-(int)(((A_y1*B_x1-A_x1*B_y2)/(B_x1*B_x1+B_y2*B_y2))/faktor_y); eckpunkte_x_div[3]=neu_achse_y+(int)(((A_x1*B_x2+A_y1*B_y2)/(B_x2*B_x2+B_y2*B_y2))/faktor_x); eckpunkte_y_div[3]=neu_achse_x-(int)(((A_y1*B_x2-A_x1*B_y2)/(B_x2*B_x2+B_y2*B_y2))/faktor_y); eckpunkte_x_div[4]=neu_achse_y+(int)(((A_x2*B_x1+A_y1*B_y1)/(B_x1*B_x1+B_y1*B_y1))/faktor_x); eckpunkte_y_div[4]=neu_achse_x-(int)(((A_y1*B_x1-A_x2*B_y1)/(B_x1*B_x1+B_y1*B_y1))/faktor_y); eckpunkte_x_div[5]=neu_achse_y+(int)(((A_x2*B_x2+A_y1*B_y1)/(B_x2*B_x2+B_y1*B_y1))/faktor_x); eckpunkte_y_div[5]=neu_achse_x-(int)(((A_y1*B_x2-A_x2*B_y1)/(B_x2*B_x2+B_y1*B_y1))/faktor_y); eckpunkte_x_div[6]=neu_achse_y+(int)(((A_x2*B_x1+A_y1*B_y2)/(B_x1*B_x1+B_y2*B_y2))/faktor_x); eckpunkte_y_div[6]=neu_achse_x-(int)(((A_y1*B_x1-A_x2*B_y2)/(B_x1*B_x1+B_y2*B_y2))/faktor_y); eckpunkte_x_div[7]=neu_achse_y+(int)(((A_x2*B_x2+A_y1*B_y2)/(B_x2*B_x2+B_y2*B_y2))/faktor_x); eckpunkte_y_div[7]=neu_achse_x-(int)(((A_y1*B_x2-A_x2*B_y2)/(B_x2*B_x2+B_y2*B_y2))/faktor_y); eckpunkte_x_div[8]=neu_achse_y+(int)(((A_x1*B_x1+A_y2*B_y1)/(B_x1*B_x1+B_y1*B_y1))/faktor_x); eckpunkte_y_div[8]=neu_achse_x-(int)(((A_y2*B_x1-A_x1*B_y1)/(B_x1*B_x1+B_y1*B_y1))/faktor_y); eckpunkte_x_div[9]=neu_achse_y+(int)(((A_x1*B_x2+A_y2*B_y1)/(B_x2*B_x2+B_y1*B_y1))/faktor_x); eckpunkte_y_div[9]=neu_achse_x-(int)(((A_y2*B_x2-A_x1*B_y1)/(B_x2*B_x2+B_y1*B_y1))/faktor_y); eckpunkte_x_div[10]=neu_achse_y+(int)(((A_x1*B_x1+A_y2*B_y2)/(B_x1*B_x1+B_y2*B_y2))/faktor_x); eckpunkte_y_div[10]=neu_achse_x-(int)(((A_y2*B_x1-A_x1*B_y2)/(B_x1*B_x1+B_y2*B_y2))/faktor_y); eckpunkte_x_div[11]=neu_achse_y+(int)(((A_x1*B_x2+A_y2*B_y2)/(B_x2*B_x2+B_y2*B_y2))/faktor_x); eckpunkte_y_div[11]=neu_achse_x-(int)(((A_y2*B_x2-A_x1*B_y2)/(B_x2*B_x2+B_y2*B_y2))/faktor_y); eckpunkte_x_div[12]=neu_achse_y+(int)(((A_x2*B_x1+A_y2*B_y1)/(B_x1*B_x1+B_y1*B_y1))/faktor_x); eckpunkte_y_div[12]=neu_achse_x-(int)(((A_y2*B_x1-A_x2*B_y1)/(B_x1*B_x1+B_y1*B_y1))/faktor_y); eckpunkte_x_div[13]=neu_achse_y+(int)(((A_x2*B_x2+A_y2*B_y1)/(B_x2*B_x2+B_y1*B_y1))/faktor_x); eckpunkte_y_div[13]=neu_achse_x-(int)(((A_y2*B_x2-A_x2*B_y1)/(B_x2*B_x2+B_y1*B_y1))/faktor_y); eckpunkte_x_div[14]=neu_achse_y+(int)(((A_x2*B_x1+A_y2*B_y2)/(B_x1*B_x1+B_y2*B_y2))/faktor_x); eckpunkte_y_div[14]=neu_achse_x-(int)(((A_y2*B_x1-A_x2*B_y2)/(B_x1*B_x1+B_y2*B_y2))/faktor_y); eckpunkte_x_div[15]=neu_achse_y+(int)(((A_x2*B_x2+A_y2*B_y2)/(B_x2*B_x2+B_y2*B_y2))/faktor_x); eckpunkte_y_div[15]=neu_achse_x-(int)(((A_y2*B_x2-A_x2*B_y2)/(B_x2*B_x2+B_y2*B_y2))/faktor_y); } ///////////////////坐标变换函数结束/////////////////////////////////////////////////////////////////// } ////////////////////////////坐标变换类结束/////////////////////////////////////////////// /////////////////////////////计算类开始//////////////////////////////////////////////// class Rechnen extends Applet { double C_x1, C_x2, C_y1, C_y2; private double max(double a,double b) { double h=a; if(hb) h=b; return h; } private double min(double a,double b, double c, double d) { double h=a; if(h>b) h=b; if(h>c) h=c; if(h>d) h=d; return h; } private double min(double a,double b, double c) { double h=a; if(h>b) h=b; if(h>c) h=c; return h; } /////////////加法计算开始/////////////////////////////////////////////////////////////////////////////// public void Add(double A_x1, double A_x2, double A_y1, double A_y2, double B_x1, double B_x2, double B_y1, double B_y2) { C_x1=A_x1+B_x1; C_x2=A_x2+B_x2; C_y1=A_y1+B_y1; C_y2=A_y2+B_y2; } /////////////加法计算结束/////////////////////////////////////////////////////////////////////////////// /////////////减法计算开始/////////////////////////////////////////////////////////////////////////////// public void Minus(double A_x1, double A_x2, double A_y1, double A_y2, double B_x1, double B_x2, double B_y1, double B_y2) { C_x1=A_x1-B_x2; C_x2=A_x2-B_x1; C_y1=A_y1-B_y2; C_y2=A_y2-B_y1; } /////////////减法计算结束/////////////////////////////////////////////////////////////////////////////// /////////////乘法计算开始/////////////////////////////////////////////////////////////////////////////// public void Multi(double A_x1, double A_x2, double A_y1, double A_y2, double B_x1, double B_x2, double B_y1, double B_y2) { double h1, h2, h3, h4, h5, h6, h7, h8; h1=A_x1*B_x1; h5=A_y1*B_y1; h2=A_x1*B_x2; h6=A_y1*B_y2; h3=A_x2*B_x1; h7=A_y2*B_y1; h4=A_x2*B_x2; h8=A_y2*B_y2; C_x1=min(h1,h2,h3,h4)-max(h5,h6,h7,h8); C_x2=max(h1,h2,h3,h4)-min(h5,h6,h7,h8); h1=A_x1*B_y1; h5=A_y1*B_x1; h2=A_x1*B_y2; h6=A_y1*B_x2; h3=A_x2*B_y1; h7=A_y2*B_x1; h4=A_x2*B_y2; h8=A_y2*B_x2; C_y1=min(h1,h2,h3,h4)+min(h5,h6,h7,h8); C_y2=max(h1,h2,h3,h4)+max(h5,h6,h7,h8); } /////////////乘法计算结束/////////////////////////////////////////////////////////////////////////////// /////////////除法计算开始/////////////////////////////////////////////////////////////////////////////// public void Div(double A_x1, double A_x2, double A_y1, double A_y2, double B_x1, double B_x2, double B_y1, double B_y2) { double h1, h2, h3, h4, h5, h6, h7, h8; h1=A_x1*B_x1; h5=A_y1*B_y1; h2=A_x1*B_x2; h6=A_y1*B_y2; h3=A_x2*B_x1; h7=A_y2*B_y1; h4=A_x2*B_x2; h8=A_y2*B_y2; C_x1=min(h1,h2,h3,h4)+min(h5,h6,h7,h8); C_x2=max(h1,h2,h3,h4)+max(h5,h6,h7,h8); h1=A_y1*B_x1; h5=A_x1*B_y1; h2=A_y1*B_x2; h6=A_x1*B_y2; h3=A_y2*B_x1; h7=A_x2*B_y1; h4=A_y2*B_x2; h8=A_x2*B_y2; C_y1=min(h1,h2,h3,h4)-max(h5,h6,h7,h8); C_y2=max(h1,h2,h3,h4)-min(h5,h6,h7,h8); h1=B_x1*B_x1; h5=B_y1*B_y1; h2=B_x1*B_x2; h6=B_y1*B_y2; h4=B_x2*B_x2; h8=B_y2*B_y2; if((B_x1>=0)||(B_x2<=0)) { h3=min(h1,h4); h7=max(h1,h4); } else { h3=min(0,h1,h4); h7=max(0,h1,h4); } if((B_y1>=0)||(B_y2<=0)) { h3=h3+min(h5,h8); h7=h7+max(h5,h8); } else { h3=h3+min(0,h5,h8); h7=h7+max(0,h5,h8); } C_x1=min((C_x1/h3),(C_x1/h7)); C_x2=max((C_x2/h3),(C_x2/h7)); C_y1=min((C_y1/h3),(C_y1/h7)); C_y2=max((C_y2/h3),(C_y2/h7)); } /////////////除法计算结束/////////////////////////////////////////////////////////////////////////////// } /////////////////////////////计算类结束////////////////////////////////////////////////