java 自定义3d-peichart(未完成)

package xyz.dengchao.util;


import java.awt.Color;

import java.awt.Container;

import java.awt.Dimension;

import java.awt.Graphics;

import java.awt.Graphics2D;

import java.awt.RenderingHints;

import java.awt.event.WindowAdapter;


import javax.swing.JFrame;

import javax.swing.JPanel;


class PaintovalPane extends JPanel {

/**

*

*/

private static final long serialVersionUID = 1L;


public void paintComponent(Graphics g) {

super.paintComponent(g);

Graphics2D g2 = (Graphics2D)g;

int startX = 50;

int startY = 50;

int width = 500;

int height = 150;

int fromCenter = 0;

int startX1 = (int) Math.floor(startX + fromCenter * Math.cos(getAngle(0 + 50/2)));

int startY1 = (int) Math.floor(startY - fromCenter * Math.sin(getAngle(0 + 50/2)));

System.out.println("(" + startX1 + ", " + startY1 + ")");

int startX2 = (int) Math.floor(startX + fromCenter * Math.cos(getAngle(50 + 40/2)));

int startY2 = (int) Math.floor(startY - fromCenter * Math.sin(getAngle(50 + 40/2)));

System.out.println("(" + startX2 + ", " + startY2 + ")");

int startX3 = (int) Math.floor(startX + fromCenter * Math.cos(getAngle(90 + 100/2)));

int startY3 = (int) Math.floor(startY - fromCenter * Math.sin(getAngle(90 + 100/2)));

System.out.println("(" + startX3 + ", " + startY3 + ")");

int startX4 = (int) Math.floor(startX + fromCenter * Math.cos(getAngle(190 + 100/2)));

int startY4 = (int) Math.floor(startY - fromCenter * Math.sin(getAngle(190 + 100/2)));

System.out.println("(" + startX4 + ", " + startY4 + ")");

int startX5 = (int) Math.floor(startX + fromCenter * Math.cos(getAngle(290 + 70/2)));

int startY5 = (int) Math.floor(startY - fromCenter * Math.sin(getAngle(290 + 70/2)));

g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

g.setColor(Color.green);

g.fillArc(startX1, startY1, width, height, 0, 50);

g.setColor(Color.red);

g.fillArc(startX2, startY2, width, height, 50, 40);

g.setColor(Color.PINK);

for(int i = 0; i < 50; i++){

g.drawArc(startX3 - fromCenter, startY3 + i, width, height, 90, 100);

}

g.fillArc(startX3, startY3, width, height, 90, 100);

g.setColor(Color.blue);

g.fillArc(startX4, startY4, width, height, 190, 100);

for(int i = 0; i < 50; i++){

g.drawArc(startX - fromCenter, startY + i, width, height, 191, 99);

}

g.setColor(Color.orange);

g.fillArc(startX5, startY5, width, height, 290, 70);

for(int i = 1; i < 50; i++){

g.drawArc(startX + fromCenter, startY + i, width, height, 290, 69);

}

}

private double getAngle(double src){

return src * Math.PI / 180;

}

}


class PaintovalFrame extends JFrame {

private static final long serialVersionUID = 1L;


public PaintovalFrame() {

setTitle("lamp");

setSize(500, 500);

addWindowListener(new WindowAdapter() {

});

Container contentPane = getContentPane();

contentPane.add(new PaintovalPane());

}

}


public class Paintoval {

public static void main(String[] args)

{

JFrame f = new PaintovalFrame();

Dimension d = new Dimension();

d.width = 650;

d.height = 200;

f.setMinimumSize(d);

f.setVisible(true);

}


}


你可能感兴趣的:(java,chart,3D)