Есть ли лучший способ покрасить такой полый куб? - PullRequest
1 голос
/ 16 марта 2011

Это мой код для рисования полого куба двумя квадратами. есть идея получше?

import javax.microedition.midlet.*; 
import javax.microedition.lcdui.*;

public class CanvasUnit extends Canvas {

    String SOutput;

    public CanvasUnit(String TextToPrint) {
        //SOutput = TextToPrint;
        SOutput = "This is a hollow cube";
    } 

    public void paint(Graphics g) {

        int width = getWidth();
        int height = getHeight();
        int WLen = width / 4;
        int HLen = height / 4;
        int WPosA = (WLen * 2);
        int HPosA = (HLen * 2);
        int WPosB = (WPosA+WLen/2);
        int HPosB = (HPosA+HLen/2);

        //Clear the screen
        g.setColor(0,0,0);
        g.fillRect(0, 0, width, height);
        g.setColor(255,255,255);
        g.drawString(SOutput,0,0,Graphics.TOP|Graphics.LEFT);

        //Object1
        g.drawLine(WLen, HLen, WPosA, HLen);
        g.drawLine(WLen, HLen, WLen, HPosA);
        g.drawLine(WLen, HPosA, WPosA, HPosA);
        g.drawLine(WPosA, HLen, WPosA, HPosA);

        //--------------------------------------------

        //Object2
        g.drawLine(Ex(WLen), Ex(HLen), WPosB, Ex(HLen));
        g.drawLine(Ex(WLen), Ex(HLen), Ex(WLen), HPosB);
        g.drawLine(Ex(WLen), HPosB, WPosB, HPosB);
        g.drawLine(WPosB, Ex(HLen), WPosB, HPosB);

        //--------------------------------------------

        //Connector Lines
        g.drawLine(WLen, HLen, Ex(WLen), Ex(HLen));
        g.drawLine(WPosA, HLen, WPosB, Ex(HLen));
        g.drawLine(WLen, HPosA, Ex(WLen), HPosB);
        g.drawLine(WPosA, HPosA, WPosB, HPosB);

    }
        private int Ex(int value){
       return value + (value/2);    }


}

Выход: Выход: http://up.iranblog.com/images/ttfhinrbao6hvlkko8uk.png

1 Ответ

1 голос
/ 16 марта 2011

Лучше:

    //Draw two hollow squares
    g.drawRect(WLen, HLen, WLen, HLen);
    g.drawRect(Ex(WLen), Ex(HLen), WLen, HLen);
    //Connector Lines
    g.drawLine(WLen, HLen, Ex(WLen), Ex(HLen));
    g.drawLine(WPosA, HLen, WPosB, Ex(HLen));
    g.drawLine(WLen, HPosA, Ex(WLen), HPosB);
    g.drawLine(WPosA, HPosA, WPosB, HPosB);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...