亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

關于J2ME中定點庫MathFP使用入門

2019-11-18 12:45:42
字體:
來源:轉載
供稿:網友

  眾所周知,CLDC1.0是不支持小數運算的,而CLDC1.1才支持浮點運算。但是目前市面上的手機,絕大部分是采用CLDC1.0這種configuration.那我們需要進行小數運算怎么辦呢?比如說要繪制任意角度的飛機運行軌跡。你當然可以自己寫一個類,用整數來模擬定點小數運算(模擬浮點小數運算非常困難),不過你不必重新發明輪子,網上有很多用整數運算來模擬小數運算的代碼庫,而MathFP就是其中非常優秀的一個,它健壯,穩定,高速,是在J2ME環境中進行小數運算的不二之選,而且最要害的是,它的體積很小。MathFP的下載地址是: http://home.rochester.rr.com/ohommes/MathFP.我下載的版本是基于CLDC的,下載的MathFP版本號是1.1.2.下載回來的全部東西就是一個MathFP.class(該類所在的包名是net.jscience.util),你可以把該類置于你的classpath中進行開發,發布軟件的時候把該class加入到jar文件中?;蛘吣阋部梢园言揷lass反編譯,得到源碼,直接放入你的工程的src目錄中,我這里采用的是后一種做法。記得同時把MathFP的API文檔下載回來。
  
  因為MathFP是用整數來模擬定點小數的,所以小數的內部表現形式還是一個整數,但是你一定要記得把表示小數的整數和真正的整數區別開來,否則就會造成很多難于調試的bug(一個小技巧就是表示小數的整形變量名以FP為后綴).你只需要把握一個原則,就是首先把要參與小數運算的整數都轉換成小數,然后進行小數運算,運算完了以后,再把結果轉換成成整數使用。
  
  下面的這個例子,就是用來演示MathFP的基本使用方法的。假定屏幕左下角有一個點,每隔100毫秒,就沿60度的角度向東北方向運動5個像素,繪制出此點的運動軌跡。這個例子涉及到小數和三角運算,因為該點x坐標的增量是cos60(度),y坐標上的增量是-sin60(度)。我們來看代碼怎么寫
  
  import javax.microedition.lcdui.Canvas;
  import javax.microedition.lcdui.Graphics;
  
  import net.jscience.util.MathFP;
  
  /**
  * 小數運算演示Canvas
  * @author Jagie
  *
  */
  public class FloatCanvas extends Canvas implements Runnable {
  //用于統計屏幕刷新次數
  int paintCount;
  //屏幕寬度,高度。定點數
  int w_FP, h_FP;
  //當前點坐標,前一點坐標,定點數
  int curX_FP, curY_FP, lastX_FP, lastY_FP;
  //速率
  public static final int RATE = 5;
  
  public FloatCanvas() {
  w_FP = MathFP.toFP(this.getWidth());
  h_FP = MathFP.toFP(this.getHeight());
  //開始點處于屏幕的左下角
  lastX_FP = MathFP.toFP(0);
  lastY_FP = h_FP;
  new Thread(this).start();
  }
  
  PRotected void paint(Graphics g) {
  //第一次只是清屏
  if (paintCount == 0) {
  g.setColor(0);
  g.fillRect(0, 0, w_FP, h_FP);
  }else{
  //畫線
  g.setColor(0x00ff00);
  //把定點數轉換成整數
  g.drawLine(MathFP.toInt(lastX_FP), MathFP.toInt(lastY_FP), MathFP
  .toInt(curX_FP), MathFP.toInt(curY_FP));
  }
  
  paintCount++;
  
  }
  
  public void run() {
  //當前點沒有超出屏幕時循環
  while (curX_FP <= w_FP && curY_FP <= h_FP && MathFP.toInt(curX_FP) >= 0
  && MathFP.toInt(curY_FP) >= 0) {
  //60度角度轉換成弧度
  int radians = MathFP.div(MathFP.mul(MathFP.toFP(60), MathFP.PI),
  MathFP.toFP(180));
  //x方向增量
  int deltaX = MathFP.mul(MathFP.toFP(RATE), MathFP.cos(radians));
  //y方向增量
  int deltaY = MathFP.mul(MathFP.toFP(RATE), MathFP.sin(radians));
  //新坐標,定點數
  curX_FP = lastX_FP + deltaX;
  curY_FP = lastY_FP - deltaY;
  System.out.println(curX_FP + "," + curY_FP);
  repaint();
  try {
  Thread.sleep(100);
  } catch (InterruptedException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
  }
  //新坐標成為舊坐標
  lastX_FP = curX_FP;
  lastY_FP = curY_FP;
  }
  }
  
  }
  
  該Canvas在設備上繪制效果如下圖:
  
關于J2ME中定點庫MathFP使用入門

  大家可以看到,曲線正沿60度角的方向朝東北方向不停的增長.
  
  有了這個定點庫,我們就能在游戲中使用小數運算了,所以一些簡單的游戲物理算法也可以使用了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美极品在线视频| 伊是香蕉大人久久| www.日韩.com| 亚洲精品短视频| 97视频在线观看亚洲| 欧美三级欧美成人高清www| 美女福利视频一区| 亚洲精品一区久久久久久| 国产一区二区三区视频| 91久久精品美女| 少妇高潮久久久久久潘金莲| 日本久久精品视频| 色悠悠久久88| 久久夜色精品亚洲噜噜国产mv| 日韩美女在线观看| 日韩在线播放视频| 国产美女直播视频一区| 国产精品色婷婷视频| 欧美视频在线免费看| 精品亚洲一区二区三区四区五区| 国产免费成人av| 成人情趣片在线观看免费| 久久精彩免费视频| 中文字幕无线精品亚洲乱码一区| 国产精品影片在线观看| 九九热视频这里只有精品| 日韩免费在线电影| 国产精品综合久久久| 久久99亚洲精品| 国产亚洲欧美aaaa| 91美女福利视频高清| 午夜精品一区二区三区在线视频| 亚洲人成在线观看| 国产成人精品av| 91老司机在线| 亚洲第一国产精品| 国产精品久久久久国产a级| 日韩av日韩在线观看| 色播久久人人爽人人爽人人片视av| 韩国福利视频一区| 国产婷婷色综合av蜜臀av| 久久久国产在线视频| 最近2019年好看中文字幕视频| 国产成人精品最新| 欧美日韩中文在线观看| 亚洲第一色中文字幕| xvideos国产精品| 欧美日韩一二三四五区| 久久精品国产精品| 日韩电影第一页| 热re91久久精品国99热蜜臀| 色悠久久久久综合先锋影音下载| 91九色单男在线观看| 日韩精品中文在线观看| 色偷偷av一区二区三区乱| 国产精品夜色7777狼人| 一区二区三区四区精品| 热久久美女精品天天吊色| 成人免费视频97| 欧美成人精品影院| 久久99青青精品免费观看| 亚洲第一精品电影| 精品国产91久久久久久| 日韩美女在线观看一区| 成人在线免费观看视视频| 亚洲人成77777在线观看网| 国外日韩电影在线观看| 91高清在线免费观看| 欧美一区亚洲一区| 午夜精品久久久久久久久久久久| 国产精品劲爆视频| 91av视频在线免费观看| 久久久av一区| 国产噜噜噜噜久久久久久久久| 亚洲第一福利视频| 亚洲精品中文字幕有码专区| 国产剧情日韩欧美| 性欧美xxxx视频在线观看| 欧美在线一级视频| 国产剧情久久久久久| 欧美肥臀大乳一区二区免费视频| 国产日韩精品在线| 久久视频在线视频| 亚洲福利视频二区| 成人午夜高潮视频| 亚洲视频777| 日本精品一区二区三区在线播放视频| 国产午夜精品视频免费不卡69堂| 国产一区二区动漫| 国产精品亚洲美女av网站| 日本精品性网站在线观看| 国产精品美女主播在线观看纯欲| 91a在线视频| 欧美日韩第一页| 最好看的2019年中文视频| 久久青草精品视频免费观看| 亚洲国产婷婷香蕉久久久久久| 欧美重口另类videos人妖| 粉嫩av一区二区三区免费野| 欧美成人四级hd版| 中文字幕av一区二区三区谷原希美| 久久精品2019中文字幕| 九九热最新视频//这里只有精品| 国产一区二区三区欧美| 精品美女国产在线| 欧美另类老肥妇| 亚洲欧美国产精品久久久久久久| 国产精品久久久久久久久借妻| 亚洲欧洲日产国码av系列天堂| 91国产精品91| 一本色道久久88亚洲综合88| 亚洲福利视频免费观看| 欧美日韩免费在线| 亚洲国产成人91精品| 97超碰蝌蚪网人人做人人爽| 日韩免费不卡av| 一本色道久久综合狠狠躁篇怎么玩| 久久久999国产精品| 日韩欧美在线第一页| 亚洲第一av在线| 精品美女国产在线| 国产精品久久久久久亚洲调教| 亚洲成人黄色网址| 久久艳片www.17c.com| 欧美大全免费观看电视剧大泉洋| 国产裸体写真av一区二区| 欧美午夜精品伦理| 欧美限制级电影在线观看| 国产精品视频资源| 97热在线精品视频在线观看| 成人在线播放av| 亚洲乱亚洲乱妇无码| 亚州精品天堂中文字幕| 在线视频国产日韩| 亚洲sss综合天堂久久| 久久久精品视频在线观看| 91亚洲精品久久久久久久久久久久| 国产91精品高潮白浆喷水| 美女av一区二区三区| 精品露脸国产偷人在视频| 一本一本久久a久久精品综合小说| 91久久精品久久国产性色也91| 国产精品久久一区主播| 8x海外华人永久免费日韩内陆视频| 精品久久久久久久久久| 一区二区欧美在线| 亚洲欧洲自拍偷拍| 亚洲男人天堂久| 中日韩美女免费视频网站在线观看| 欧美丰满少妇xxxxx做受| 欧美性猛交xxxx乱大交蜜桃| 91精品国产综合久久男男| 成人福利视频网| 久久综合亚洲社区| 国产精品午夜一区二区欲梦| 国内精久久久久久久久久人| 日韩精品在线私人| 亚洲国产精品va在看黑人| 日韩欧美国产高清91| 欧美丰满片xxx777| 国产日韩专区在线| 成人中心免费视频| 久久久成人av| 5566成人精品视频免费|