• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    J2ME中的基礎碰撞檢測算法淺析

    發布: 2008-7-09 14:09 | 作者: 不詳 | 來源: cnjm | 查看: 201次 | 進入軟件測試論壇討論

    領測軟件測試網游戲中,經常需要進行碰撞檢測的實現,例如判斷前面是否有障礙以及判斷子彈是否擊中飛機,都是檢測兩個物體是否發生碰撞,然后根據檢測的結果做出不同的處理。

    進行碰撞檢測的物體可能有些的形狀和復雜,這些需要進行組合碰撞檢測,就是將復雜的物體處理成一個一個的基本形狀的組合,然后分別進行不同的檢測。

    下面簡單介紹一下兩種最基本的形狀進行碰撞的時候進行的處理。

    1、矩形和矩形進行碰撞

    一般規則的物體碰撞都可以處理成矩形碰撞,實現的原理就是檢測兩個矩形是否重疊。我們假設矩形1的參數是:左上角的坐標是(x1,y1),寬度是w1,高度是h1;矩形2的參數是:左上角的坐標是(x2,y2),寬度是w2,高度是h2。

    JAVA手機網[www.cnjm.net]在檢測時,數學上可以處理成比較中心點的坐標在x和y方向上的距離和寬度的關系。即兩個矩形中心點在x方向的距離的絕對值小于等于矩形寬度和的二分之一,同時y方向的距離的絕對值小于等于矩形高度和的二分之一。下面是數學表達式:

    x方向:| (x1 + w1 / 2) – (x2 + w2/2) | < |(w1 + w2) / 2|

    y方向:| (y1 + h1 / 2) – (y2 + h2/2) | < |(h1 + h2) / 2|

    在程序中,只需要將上面的條件轉換成代碼就可以實現了。

    但是矩形碰撞只是一種比較粗糙的碰撞檢測方法,因為很多實際的物體可能不是一個規則的矩形。

    下面介紹一下圓形碰撞。

    2、圓形和圓形的碰撞

    圓形和圓形的碰撞應該說是一種最簡單的碰撞,因為在數學上對于兩個圓形是否發生重疊,有計算兩個圓心之間的距離的公式。那么條件就變為:計算兩個圓心之間的距離是否小于兩個圓的半徑和。

    假設圓形1的左上角坐標是(x1,y1),半徑是r1,圓形2的左上角的坐標是(x2,y2),半徑是r2。
    JAVA手機網[www.cnjm.net]
    因為MIDP1.0中沒有浮點數,而且浮點數的運算比較慢,所以我們將條件做一個簡單的變換:對于條件的兩邊都進行平方,這樣就去掉了開方的運算步驟。

    下面是數學表達式:

    (x1 – x2)2 + (y1 – y2)2 < (r1 + r2)2

    在程序中,只需要將上面的條件轉換成代碼就可以了。

    上面介紹的只是最基本的碰撞檢測算法的實現,而實際的編程過程中遇到的碰撞檢測問題要比這些復雜很多,還需要其他形式的檢測,還需要進行更加深入的學習。
    來自:http://www.cnjm.net/tech/article4059.html

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: java JAVA Java 手機 數學 算法 矩形


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>