java中的指数或对数?

时间:2016-02-29 10:27:07

标签: java drawing graphing

我还是比较新的。试图发布更好的问题,希望更多的反馈!

我试图从热力学中画出代表等温线(红线)和绝热过程(暗线)的线条。来自wiki http://bit.ly/1Qixotl

的示例

等温线的等式是压力(Y)*体积(X)=常数(温度) 所以我通过定义Y =常数/ X来绘制我的线条,然后使用绘制线命令找到这些曲线的点......我认为这些都没问题。

我坚持绝热线......这个方程几乎相同,但在混合中有一个指数。 Y * X ^ gamma =常数..伽玛通常是1.67但如果我尝试更高的值,它应该只是使黑暗曲线斜率更陡。

我试过调用Y =常数/ X ^ gamma,但是我应该使用对数吗?

任何帮助表示感谢。

   //ISOTHERMS
   //i = x axis; j = y axis;
  // for values 1 - 350
  // plot y values from isothermal equation -- P*V = constant T
 // j = k/i

  int k1 = 5000;
  //int k1 = 1500;
    //int k1 = 15000;
       //int k2 = 20000;
       int k2 = 15000;
       //int k2 = 30000;

  g.setColor(Color.red);
  for( int i = 1; i < 350; i++) 
  {
    int j1 = k1/i;
    int j2 = k2/i;
    //if(j1 < 350) 
        g.drawLine(i+50, j1+50, i+50, j1+50);
    //if(j2 < 350) 
        g.drawLine(i+50, j2+50, i+50, j2+50);

  }

    //ADIABATS
  //P*V^gamma = constant T
  double gamma = 1.67;

 for( int m = 1; m < 500; m++) 
 {

   // int h1 = (int) (1400000/(Math.pow(m,1.97)));
   int h1 = (int) (1000000/(Math.pow(m,2)));
    //int h2 = (int) (3500000/(Math.pow(m,1.97)));
   int h2 = (int) (2400000/(Math.pow(m,2)));
    //if(j1 < 350) 
    g.setColor(Color.blue);
        g.drawLine(m+50, h1+50, m+50, h1+50);
    //if(j2 < 350) 
        g.drawLine(m+50, h2+50, m+50, h2+50);



  }

current output

0 个答案:

没有答案