java 畫一個曲線執行個體代碼(二款jsp繪製曲線執行個體)(1/2)

來源:互聯網
上載者:User

java 畫一個曲線執行個體代碼(二款網頁特效phttp://www.111cn.net/網頁特效p.html target=_blank >jsp教程繪製曲線執行個體)
/*
參數名 描 述 
畫出模式 必需的; 整數型。參數值可以為以下常量: 6912、#點,將畫出的多邊形顯示為點; 6913、#線,將畫出的多邊形顯示為線段;  
曲線起點 必需的; 整數型。參數值應該介於 0 和"設定曲線等分點"命令中的"u向等分數"之間。 
曲線終點 必需的; 整數型。參數值應該介於 0 和"設定曲線等分點"命令中的"u向等分數"之間
*/

public class test {
    public static void main(string[] args) {
        trifunc tri = new trifunc();
       
        // 產生一塊25×100的畫布
        canvas canvas = new canvas(25, 120);

        // 畫sin曲線,周期為2
        tri.drawsin(canvas, 2.0);
        canvas.printcanvas();
       
        system.out.println();
        canvas.reset();
        // 畫cos曲線,周期為2
        tri.drawcos(canvas, 2.0);
        canvas.printcanvas();
    }
}

class trifunc {

    /**
     * 畫sin曲線
     * @param canvas 畫布
     * @param period 曲線周期
     */
    public void drawsin(canvas canvas, double period) {       
        char[][] chars = canvas.getcanvas();
        // x 軸的比率
        double xratio = (2 * period * math.pi) / (canvas.getwidth() - 1);
        // y 軸的放大倍率
        int ymulti = (canvas.getheight() - 1) / 2;
        for(int i = 0; i < canvas.getwidth(); i++) {
            // 將數組索引映射為橫座標值
            double k = (i - canvas.getwidth() / 2) * xratio;
            // 將sin值對應為數組索引
            int h = ymulti - (int)math.round(math.sin(k) * ymulti);
            chars[h][i] = canvas.fill_char;
        }
    }
   
    /**
     * 畫cos曲線
     * @param canvas 畫布
     * @param period 曲線周期
     */
    public void drawcos(canvas canvas, double period) {
        char[][] chars = canvas.getcanvas();
        double xratio = (2 * period * math.pi) / (canvas.getwidth() - 1);
        int ymulti = (canvas.getheight() - 1) / 2;
        for(int i = 0; i < canvas.getwidth(); i++) {
            double k = (i - canvas.getwidth() / 2) * xratio;
            int h = ymulti - (int)math.round(math.cos(k) * ymulti);
            chars[h][i] = canvas.fill_char;
        }
    }
}

首頁 1 2 末頁
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.