2016-04-12 2 views
0

У меня есть задание, где мне нужно что-то нарисовать, но для этого мне нужно использовать методы. Как я могу это сделать в JApplet, вот мой код, который я пытаюсь перевернуть к методам, которые я пытаюсь нарисовать тремя лицами, прикрывая руки, глаза и рот.Как использовать методы для рисования на Java?

import javax.swing.JApplet; 
import java.awt.Graphics; 

public class HappyFace extends JApplet { 
int xOffSetOfFace = 100; 
int xOffSetOfEyes = 150; 
int xPos = 300; 
int yPosOfFace = 300; 
int yPosOfEye = 350; 
int heightOfEyes = 25; 
int widthOfEyes = 25; 
int height = 200; 
int width = 200; 
int xOffSetOfMouth = 160; 
int yOffSetOfMouth = 420; 
int widthOfMouth = 110; 
int heightOfMouth = 50; 
int startArcOfMouth = 180; 
int endArcOfMouth = 180; 
int xOffSetOfEar = 80; 
int yPosOfEar = 278; 
int heightOfEar = 68; 
int widthOfEar = 50; 
int dxHandHear = 175; 
int dyHandHear = 175; 
int arcWidth = 12; 
int arcHeight = 42; 
int arcStart = 90; 
int arcEndOne = 150; 
int arcEndTwo = -120; 

public void paint(Graphics canvas) { 
    super.paint(canvas); 
    for (int i = 0; i < 3; i++) { 
    canvas.drawOval((xOffSetOfFace) + (xPos * i), yPosOfFace, width, height); //draws Face 
    canvas.fillOval((xOffSetOfEyes) + (xPos * i), yPosOfEye, widthOfEyes, heightOfEyes); //draws eye1 
    canvas.fillOval((xOffSetOfEyes) + (xPos * i) + 90, yPosOfEye, widthOfEyes, heightOfEyes); //draws eye2 
    canvas.drawArc((xOffSetOfMouth) + (xPos * i), yOffSetOfMouth, widthOfMouth, heightOfMouth, startArcOfMouth, 
    endArcOfMouth); //draws mouth 
    canvas.drawOval((xOffSetOfEar) + (xPos * i), yPosOfEar, widthOfEar, heightOfEar); //draws leftmost ears 
    canvas.drawOval((xOffSetOfEar) + (xPos * i) + 190, yPosOfEar, widthOfEar, heightOfEar); //draws right most ears 

    } 


    canvas.fillOval(85, 350, 45, 25); //draws palm 
    canvas.fillArc(87, 335, arcWidth, arcHeight, arcStart, arcEndOne); //draws finger1 
    canvas.fillArc(87, 335, 12, 42, 90, -120); //draws finger1 
    canvas.fillArc(105, 330, 12, 42, 90, 150); //draws finger2 
    canvas.fillArc(105, 330, 12, 42, 90, -120); //draws finger2 
    canvas.fillArc(117, 335, 12, 42, 90, 150); //draws finger3 
    canvas.fillArc(117, 335, 12, 42, 90, -120); //draws finger3 
    //sep 
    canvas.fillOval(85 + dxHandHear, 350, 45, 25); //draws palm 
    canvas.fillArc(87 + dxHandHear, 335, 12, 42, 90, 150); //draws finger1 
    canvas.fillArc(87 + dxHandHear, 335, 12, 42, 90, -120); //draws finger1 
    canvas.fillArc(105 + dxHandHear, 330, 12, 42, 90, 150); //draws finger2 
    canvas.fillArc(105 + dxHandHear, 330, 12, 42, 90, -120); //draws finger2 
    canvas.fillArc(117 + dxHandHear, 335, 12, 42, 90, 150); //draws finger3 
    canvas.fillArc(117 + dxHandHear, 335, 12, 42, 90, -120); //draws finger3 

    canvas.fillOval((85 + dxHandHear) * 2, 350, 45, 25); //draws palm 
    canvas.fillArc((87 + dxHandHear) * 2, 335, 12, 42, 90, 150); //draws finger1 
    canvas.fillArc((87 + dxHandHear) * 2, 335, 12, 42, 90, -120); //draws finger1 
    canvas.fillArc((95 + dxHandHear) * 2, 330, 12, 42, 90, 150); //draws finger2 
    canvas.fillArc((95 + dxHandHear) * 2, 330, 12, 42, 90, -120); //draws finger2 
    canvas.fillArc((102 + dxHandHear) * 2, 335, 12, 42, 90, 150); //draws finger3 
    canvas.fillArc((102 + dxHandHear) * 2, 335, 12, 42, 90, -120); //draws finger3 

    canvas.fillOval(((85 + dxHandHear) * 2) - 90, 350, 45, 25); //draws palm 
    canvas.fillArc(((87 + dxHandHear) * 2) - 90, 335, 12, 42, 90, 150); //draws finger1 
    canvas.fillArc(((87 + dxHandHear) * 2) - 90, 335, 12, 42, 90, -120); //draws finger1 
    canvas.fillArc(((95 + dxHandHear) * 2) - 90, 330, 12, 42, 90, 150); //draws finger2 
    canvas.fillArc(((95 + dxHandHear) * 2) - 90, 330, 12, 42, 90, -120); //draws finger2 
    canvas.fillArc(((102 + dxHandHear) * 2) - 90, 335, 12, 42, 90, 150); //draws finger3 
    canvas.fillArc(((102 + dxHandHear) * 2) - 90, 335, 12, 42, 90, -120); //draws finger3 

    canvas.fillOval(((85 + dxHandHear) * 3) - 25, 350 + 110, 45, 25); //draws palm 
    canvas.fillArc(((87 + dxHandHear) * 3) - 30, 335 + 110, 12, 42, 90, 150); //draws finger1 
    canvas.fillArc(((87 + dxHandHear) * 3) - 30, 335 + 110, 12, 42, 90, -120); //draws finger1 
    canvas.fillArc(((95 + dxHandHear) * 3) - 35, 330 + 110, 12, 42, 90, 150); //draws finger2 
    canvas.fillArc(((95 + dxHandHear) * 3) - 35, 330 + 110, 12, 42, 90, -120); //draws finger2 
    canvas.fillArc(((102 + dxHandHear) * 3) - 45, 335 + 110, 12, 42, 90, 150); //draws finger3 
    canvas.fillArc(((102 + dxHandHear) * 3) - 45, 335 + 110, 12, 42, 90, -120); //draws finger3 

    canvas.fillOval(((85 + dxHandHear) * 3) + 30, 350 + 110, 45, 25); //draws palm 
    canvas.fillArc(((87 + dxHandHear) * 3) + 25, 335 + 110, 12, 42, 90, 150); //draws finger1 
    canvas.fillArc(((87 + dxHandHear) * 3) + 25, 335 + 110, 12, 42, 90, -120); //draws finger1 
    canvas.fillArc(((95 + dxHandHear) * 3) + 20, 330 + 110, 12, 42, 90, 150); //draws finger2 
    canvas.fillArc(((95 + dxHandHear) * 3) + 20, 330 + 110, 12, 42, 90, -120); //draws finger2 
    canvas.fillArc(((102 + dxHandHear) * 3) + 10, 335 + 110, 12, 42, 90, 150); //draws finger3 
    canvas.fillArc(((102 + dxHandHear) * 3) + 10, 335 + 110, 12, 42, 90, -120); //draws finger3 

} 
} 
+0

Я не хочу выполнять вас для вас, поэтому вот подсказка: подумайте о вызове метода, например 'drawFinger (...)', который принимает параметры, чтобы нарисовать общий палец, затем назовите это, чтобы нарисовать определенные пальцы. – jr593

ответ

0

создать метод, который рисует руку и берет в массив Int значений рисовать руки

Или создать класс, который содержит всю информацию для рук т.е.

int[] finger1 = [87+dxHandHear, 335, 12, 42, 90, 150]; 

Затем в методе, который рисует руку, проходит мимо объекта. Объект

private void drawHand(Hand h) { 
    canvas.fillArc(h.getFinger1()[0], h.getFinger1()[1], h.getFinger1()[2], h.getFinger1()[3], h.getFinger1()[4], h.getFinger1()[5]); //draws finger1 
    ..... 
} 
Смежные вопросы