• J2ME游戏开发之几何图形的绘制


    1. 方法

    a. 绘制空心矩形:

           drawRect(int x, int y , int width, int height);

    b. 绘制实心矩形:

          fillRect(int x, int y , int width, int height);

    c. 绘制椭圆

    2. code

    package com.sliw.graphics;
    
    import javax.microedition.lcdui.Canvas;
    import javax.microedition.lcdui.Graphics;
    
    public class GeometryCanvas extends Canvas{
    
        int startY = 10;
        int height = 20;
        int tip = 10;
        
        protected void paint(Graphics g) {
            // TODO Auto-generated method stub
            clear(g);
            
            /** 绘制空心的矩形 */
            drawBlankRect(g);    
            startY = startY + height + tip;
            
            /** 绘制实心的矩形**/
            drawFillRect(g);
            startY = startY + height + tip;
            
            /** 绘制空心椭圆  **/
            drawBlankOval(g);
            startY = startY + height + tip;
            
            /** 绘制实心椭圆 **/
            drawFillOval(g);
            startY = startY + height + tip;
            
            /** 绘制类似进度条 **/
            drawBlankAndFillOval(g);
            startY = startY + height + tip;
            
            
            /** 绘制圆**/
            drawCycle(g);
        }
    
        private void clear(Graphics g){
            g.setColor(255,255,255);
            g.fillRect(0, 0, getWidth(), getHeight());
        }
        
        /**
         * drawRect(int x, int y , int width, int height);
         * @param g
         */
        private void drawBlankRect(Graphics g){
            
            g.setColor(255,0,0);    
            g.drawRect(10, startY, 100, height);
            
        }
        
        
        private void drawFillRect(Graphics g){
            
            g.setColor(0,255,0);
            g.fillRect(10, startY, 100, height);
        }
        
        
        /**
         * drawRoundRect(int x , int y , int width, int height, int arcWidth , int arcHeight);
         *         arcWidth 是左右弧衔接起来凑成的弧的宽度
         *         arcHeight 则是上下弧衔接起来凑成的弧的高度
         * @param g
         */
        private void drawBlankOval(Graphics g){
            g.setColor(0,0,255);    
            g.drawRoundRect(10, startY, 100, height, 20, 20);
        }
        
        private void drawFillOval(Graphics g){
            g.setColor(0,0,255);    
            g.fillRoundRect(10, startY, 100, height, 20, 20);
        }
        
        /**
         * 通过叠加的方式
         * @param g
         */
        private void drawBlankAndFillOval(Graphics g){
            g.setColor(0,0,255);    
            g.drawRoundRect(10, startY, 100, height, 20, 20);
            g.fillRoundRect(10, startY, 20, 20, 20, 20);
            g.fillRect(20, startY, 60, 20);
        }
        
        /**
         *   
         */
        private void drawCycle(Graphics g){
            g.setColor(150,150,150);
            g.drawRoundRect(10, startY, 60, 60, 60, 60);    
        }
    }
    
  • 相关阅读:
    [非专业翻译] Mapster
    [非专业翻译] Mapster
    排序之猴子算法
    1309游客统计
    1631低洼地
    1636车牌问题
    1638图形
    这是一篇小短文
    1500【自定义函数】走楼梯
    PHP 之表单提交大数据,数据不完整
  • 原文地址:https://www.cnblogs.com/zhangweia/p/2143492.html
Copyright © 2020-2023  润新知