Dateien nach "visualizationElements" hochladen
This commit is contained in:
parent
7dbde48298
commit
7ceab2e156
134
visualizationElements/BarChart.java
Normal file
134
visualizationElements/BarChart.java
Normal file
@ -0,0 +1,134 @@
|
|||||||
|
package visualizationElements;
|
||||||
|
|
||||||
|
import java.awt.Color;
|
||||||
|
import java.awt.Graphics;
|
||||||
|
import java.util.Vector;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents a bar chart to visualize sort algorithms.
|
||||||
|
* @author MSchaefer
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class BarChart extends VisualizationElement {
|
||||||
|
|
||||||
|
private static final int START_X_POS = 40;
|
||||||
|
private Vector<BarChartElement> values;
|
||||||
|
private int width;
|
||||||
|
private int height;
|
||||||
|
private int startYPos;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new BarChart.
|
||||||
|
* @param values Vector with values to show as bars in the BarChart.
|
||||||
|
* @param width Width of the BarChart.
|
||||||
|
* @param heigth Height of the BarChart.
|
||||||
|
*/
|
||||||
|
public BarChart(Vector<BarChartElement> values, int width, int heigth) {
|
||||||
|
super();
|
||||||
|
this.setValues(values);
|
||||||
|
this.setWidth(width-10);
|
||||||
|
this.setHeight(heigth);
|
||||||
|
startYPos = heigth - 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new BarChart.
|
||||||
|
* @param values Array with values to show as bars in the BarChart.
|
||||||
|
* @param width Width of the BarChart.
|
||||||
|
* @param heigth Height of the BarChart.
|
||||||
|
*/
|
||||||
|
public BarChart(BarChartElement[] values, int width, int heigth) {
|
||||||
|
super();
|
||||||
|
|
||||||
|
this.setWidth(width-10);
|
||||||
|
this.setHeight(heigth);
|
||||||
|
startYPos = heigth - 10;
|
||||||
|
|
||||||
|
Vector<BarChartElement> valueVector = new Vector<BarChartElement>();
|
||||||
|
for(BarChartElement element : values){
|
||||||
|
valueVector.add(element);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.setValues(valueVector);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void draw(Graphics g) {
|
||||||
|
int xpos = START_X_POS;
|
||||||
|
int section = (width-20)/values.size();
|
||||||
|
for (BarChartElement barChartElement : values) {
|
||||||
|
|
||||||
|
barChartElement.draw(g, xpos, startYPos, section/2, calculateBarHeight(barChartElement));
|
||||||
|
xpos = xpos + section;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ground
|
||||||
|
g.setColor(Color.BLACK);
|
||||||
|
g.drawLine(START_X_POS - 10, startYPos, xpos-10, startYPos);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Calculates the height of the bar dependent of the height and value.
|
||||||
|
* Ensures that no bar is drawn downwards if the window is resized.
|
||||||
|
* @param barChartElement The BarChartElement the height is calculated for.
|
||||||
|
* @return Returns how high the bar should be drawn.
|
||||||
|
*/
|
||||||
|
private int calculateBarHeight(BarChartElement barChartElement) {
|
||||||
|
int barHeight = ((barChartElement.getValue() * (-height))/10)+20;
|
||||||
|
|
||||||
|
if(barHeight > 0){
|
||||||
|
barHeight = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return barHeight;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param values the values to set
|
||||||
|
*/
|
||||||
|
public void setValues(Vector<BarChartElement> values) {
|
||||||
|
this.values = values;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the values
|
||||||
|
*/
|
||||||
|
public Vector<BarChartElement> getValues() {
|
||||||
|
return values;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param width the width to set
|
||||||
|
*/
|
||||||
|
public void setWidth(int width) {
|
||||||
|
this.width = width;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the width
|
||||||
|
*/
|
||||||
|
public int getWidth() {
|
||||||
|
return width;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param height the height to set
|
||||||
|
*/
|
||||||
|
public void setHeight(int height) {
|
||||||
|
this.height = height;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the height
|
||||||
|
*/
|
||||||
|
public int getHeight() {
|
||||||
|
return height;
|
||||||
|
}
|
||||||
|
}
|
76
visualizationElements/BarChartElement.java
Normal file
76
visualizationElements/BarChartElement.java
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
package visualizationElements;
|
||||||
|
|
||||||
|
import java.awt.Color;
|
||||||
|
import java.awt.Graphics;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents a bar within a bar chart.
|
||||||
|
* @author MSchaefer
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class BarChartElement {
|
||||||
|
|
||||||
|
private Color color;
|
||||||
|
private int value;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new BarChartElement.
|
||||||
|
* @param value Value (size) of the bar.
|
||||||
|
* @param color Coloring of the bar.
|
||||||
|
*/
|
||||||
|
public BarChartElement(int value, Color color){
|
||||||
|
this.setValue(value);
|
||||||
|
this.setColor(color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new BarChartElement.
|
||||||
|
* @param value Value (size) of the bar.
|
||||||
|
*/
|
||||||
|
public BarChartElement(int value){
|
||||||
|
this.setValue(value);
|
||||||
|
this.setColor(Color.BLACK);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Draws the BarChartElement
|
||||||
|
* @param g The Graphics object to draw the element to the DrawArea.
|
||||||
|
* @param xpos Horizontal position where the barChartElement is drawn.
|
||||||
|
* @param yPos Vertical position where the barChartElement is drawn.
|
||||||
|
* @param width Width of the barChartElement.
|
||||||
|
* @param height Height of the barChartElement.
|
||||||
|
*/
|
||||||
|
public void draw(Graphics g, int xpos, int yPos, int width, int height) {
|
||||||
|
g.setColor(this.getColor());
|
||||||
|
|
||||||
|
g.fillRect(xpos, yPos, width, height);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param value the value to set
|
||||||
|
*/
|
||||||
|
public void setValue(int value) {
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the value
|
||||||
|
*/
|
||||||
|
public int getValue() {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param color the color to set
|
||||||
|
*/
|
||||||
|
public void setColor(Color color) {
|
||||||
|
this.color = color;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the color
|
||||||
|
*/
|
||||||
|
public Color getColor() {
|
||||||
|
return color;
|
||||||
|
}
|
||||||
|
}
|
178
visualizationElements/Cell.java
Normal file
178
visualizationElements/Cell.java
Normal file
@ -0,0 +1,178 @@
|
|||||||
|
package visualizationElements;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents a Cell of a maze.
|
||||||
|
* @author MSchaefer
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class Cell {
|
||||||
|
|
||||||
|
private boolean northWall = true;
|
||||||
|
private boolean southWall = true;
|
||||||
|
private boolean westWall = true;
|
||||||
|
private boolean eastWall = true;
|
||||||
|
private boolean isStart;
|
||||||
|
private boolean isGoal;
|
||||||
|
private boolean visited;
|
||||||
|
private final int column;
|
||||||
|
private final int row;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new cell of a maze.
|
||||||
|
* @param column Number of the column the cell is arranged in.
|
||||||
|
* @param row Number of the row the cell is arranged in.
|
||||||
|
*/
|
||||||
|
public Cell(int column, int row){
|
||||||
|
this.column = column;
|
||||||
|
this.row = row;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the cell's north wall to false.
|
||||||
|
*/
|
||||||
|
public void removeNorthWall(){
|
||||||
|
this.northWall = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the cell's south wall to false.
|
||||||
|
*/
|
||||||
|
public void removeSouthWall(){
|
||||||
|
this.southWall = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the cell's west wall to false.
|
||||||
|
*/
|
||||||
|
public void removeWestWall(){
|
||||||
|
this.westWall = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the cell's east wall to false.
|
||||||
|
*/
|
||||||
|
public void removeEastWall(){
|
||||||
|
this.eastWall = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param northWall the northWall to set
|
||||||
|
*/
|
||||||
|
public void setNorthWall(boolean northWall) {
|
||||||
|
this.northWall = northWall;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns whether the cell has a north wall or not.
|
||||||
|
* @return True if the cell has a north wall, false otherwise.
|
||||||
|
*/
|
||||||
|
public boolean hasNorthWall(){
|
||||||
|
return northWall;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param southWall the southWall to set
|
||||||
|
*/
|
||||||
|
public void setSouthWall(boolean southWall) {
|
||||||
|
this.southWall = southWall;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns whether the cell has a south wall or not.
|
||||||
|
* @return True if the cell has a south wall, false otherwise.
|
||||||
|
*/
|
||||||
|
public boolean hasSouthWall(){
|
||||||
|
return southWall;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param westWall the westWall to set
|
||||||
|
*/
|
||||||
|
public void setWestWall(boolean westWall) {
|
||||||
|
this.westWall = westWall;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns whether the cell has a west wall or not.
|
||||||
|
* @return True if the cell has a west wall, false otherwise.
|
||||||
|
*/
|
||||||
|
public boolean hasWestWall(){
|
||||||
|
return westWall;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param eastWall the eastWall to set
|
||||||
|
*/
|
||||||
|
public void setEastWall(boolean eastWall) {
|
||||||
|
this.eastWall = eastWall;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns whether the cell has a east wall or not.
|
||||||
|
* @return True if the cell has a east wall, false otherwise.
|
||||||
|
*/
|
||||||
|
public boolean hasEastWall(){
|
||||||
|
return eastWall;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the cell as visited.
|
||||||
|
*/
|
||||||
|
public void markAsVisited() {
|
||||||
|
this.visited = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns whether the cell was visited or not.
|
||||||
|
* @return True if the cell was visited, false otherwise.
|
||||||
|
*/
|
||||||
|
public boolean isVisited() {
|
||||||
|
return visited;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the cell as the goal of the maze.
|
||||||
|
*/
|
||||||
|
public void setAsGoal() {
|
||||||
|
this.isGoal = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns whether the cell is the goal of the maze it contains to.
|
||||||
|
* @return True if the cell is the goal of the maze, false otherwise.
|
||||||
|
*/
|
||||||
|
public boolean isGoal() {
|
||||||
|
return isGoal;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the row number.
|
||||||
|
* @return the number of the row the cell is arranged to.
|
||||||
|
*/
|
||||||
|
public int getRow() {
|
||||||
|
return row;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the column number.
|
||||||
|
* @return the number of the column the cell is arranged to.
|
||||||
|
*/
|
||||||
|
public int getColumn() {
|
||||||
|
return column;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the cell as the start cell of the maze it contains to.
|
||||||
|
*/
|
||||||
|
public void setAsStart() {
|
||||||
|
this.isStart = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns whether the cell is the start of the maze it contains to.
|
||||||
|
* @return True if the cell is the start cell of the maze, false otherwise.
|
||||||
|
*/
|
||||||
|
public boolean isStart() {
|
||||||
|
return isStart;
|
||||||
|
}
|
||||||
|
}
|
198
visualizationElements/ChessBoard.java
Normal file
198
visualizationElements/ChessBoard.java
Normal file
@ -0,0 +1,198 @@
|
|||||||
|
package visualizationElements;
|
||||||
|
|
||||||
|
import java.awt.Color;
|
||||||
|
import java.awt.Font;
|
||||||
|
import java.awt.Graphics;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents a chess board.
|
||||||
|
* @author MSchaefer
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class ChessBoard extends Table {
|
||||||
|
|
||||||
|
private static final int START_X_POS = 10;
|
||||||
|
private static final int START_Y_POS = 10;
|
||||||
|
private static final int BORDER = 20;
|
||||||
|
private boolean[][] board;
|
||||||
|
private int size;
|
||||||
|
private int cellWidth;
|
||||||
|
private int cellHeight;
|
||||||
|
private String marking;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new ChessBoard.
|
||||||
|
* @param board The 2-dimensional array which represents the chess board.
|
||||||
|
* @param width Width of the whole chess board.
|
||||||
|
* @param height Height of the whole chess board.
|
||||||
|
*/
|
||||||
|
public ChessBoard(boolean[][] board, int width, int height, String marking){
|
||||||
|
|
||||||
|
super(null, board.length, board.length);
|
||||||
|
|
||||||
|
if(board.length != board[0].length){
|
||||||
|
throw new IllegalArgumentException("The array/board must be N x N!");
|
||||||
|
}
|
||||||
|
|
||||||
|
this.size = board.length;
|
||||||
|
this.board = board;
|
||||||
|
this.marking = marking;
|
||||||
|
calculateCellHeigth(width, height, board.length);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Calculates the height and width of a cell dependent of the height and width of the whole chess board and the number of cells.
|
||||||
|
* @param width Width of the chess board.
|
||||||
|
* @param height Height of the chess board.
|
||||||
|
* @param size Number of cells in one row/column
|
||||||
|
*/
|
||||||
|
private void calculateCellHeigth(int width, int height, int size) {
|
||||||
|
if(width <= height){
|
||||||
|
height = width;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.cellWidth = (height - BORDER)/(size + 1);
|
||||||
|
this.cellHeight = (height - BORDER)/(size + 1);
|
||||||
|
|
||||||
|
if(cellWidth < cellHeight){
|
||||||
|
cellHeight = cellWidth;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
cellWidth = cellHeight;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void draw(Graphics g) {
|
||||||
|
int xpos = START_X_POS + cellWidth/2;
|
||||||
|
int ypos = START_Y_POS;
|
||||||
|
|
||||||
|
g.setFont(new Font("Arial", Font.BOLD, cellHeight/3));
|
||||||
|
|
||||||
|
// draw horizontal labeling
|
||||||
|
for(int i = size; i > 0; i--){
|
||||||
|
ypos = ypos + cellWidth;
|
||||||
|
g.drawString(String.valueOf(i), xpos, ypos + (cellHeight/2));
|
||||||
|
}
|
||||||
|
|
||||||
|
ypos = START_Y_POS + cellWidth/3;
|
||||||
|
xpos = START_X_POS;
|
||||||
|
|
||||||
|
|
||||||
|
// Draw vertical labeling
|
||||||
|
char name = 'A';
|
||||||
|
|
||||||
|
for(int i = size; i > 0; i--){
|
||||||
|
xpos = xpos + cellHeight;
|
||||||
|
|
||||||
|
g.drawString(String.valueOf(name), xpos + (cellWidth/2), ypos + cellHeight/2);
|
||||||
|
name++;
|
||||||
|
}
|
||||||
|
|
||||||
|
xpos = START_X_POS;
|
||||||
|
ypos = START_Y_POS;
|
||||||
|
|
||||||
|
g.setColor(Color.WHITE);
|
||||||
|
for(int i = 0; i < board.length; i++){
|
||||||
|
xpos = xpos + cellWidth;
|
||||||
|
ypos = START_Y_POS;
|
||||||
|
|
||||||
|
for(int j = 0; j < board[i].length; j++){
|
||||||
|
ypos = ypos + cellWidth;
|
||||||
|
g.fillRect(xpos, ypos, cellWidth, cellHeight);
|
||||||
|
|
||||||
|
if(g.getColor() == Color.WHITE){
|
||||||
|
g.setColor(Color.BLACK);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
g.setColor(Color.WHITE);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(board[j][i] == true){
|
||||||
|
g.setFont(new Font("Arial", Font.BOLD, cellHeight/2));
|
||||||
|
g.drawString(this.marking, xpos + (cellWidth/3), ypos + (2*cellHeight)/3);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(board.length %2 == 0){
|
||||||
|
if(g.getColor() == Color.WHITE){
|
||||||
|
g.setColor(Color.BLACK);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
g.setColor(Color.WHITE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param board the board to set
|
||||||
|
*/
|
||||||
|
public void setBoard(boolean[][] board) {
|
||||||
|
this.board = board;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the board
|
||||||
|
*/
|
||||||
|
public boolean[][] getBoard() {
|
||||||
|
return board;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param size the size to set
|
||||||
|
*/
|
||||||
|
public void setSize(int size) {
|
||||||
|
this.size = size;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the size
|
||||||
|
*/
|
||||||
|
public int getSize() {
|
||||||
|
return size;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the width of a cell
|
||||||
|
*/
|
||||||
|
public int getCellWidth() {
|
||||||
|
return cellWidth;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param cellWidth
|
||||||
|
*/
|
||||||
|
public void setCellWidth(int cellWidth) {
|
||||||
|
this.cellWidth = cellWidth;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the height of a cell
|
||||||
|
*/
|
||||||
|
public int getCellHeight() {
|
||||||
|
return cellHeight;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param cellHeight
|
||||||
|
*/
|
||||||
|
public void setCellHeight(int cellHeight) {
|
||||||
|
this.cellHeight = cellHeight;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the marking
|
||||||
|
*/
|
||||||
|
public String getMarking() {
|
||||||
|
return marking;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param marking The marking of the chess board.
|
||||||
|
*/
|
||||||
|
public void setMarking(String marking) {
|
||||||
|
this.marking = marking;
|
||||||
|
}
|
||||||
|
}
|
128
visualizationElements/DotChart.java
Normal file
128
visualizationElements/DotChart.java
Normal file
@ -0,0 +1,128 @@
|
|||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package visualizationElements;
|
||||||
|
|
||||||
|
import java.awt.Graphics;
|
||||||
|
import java.util.Vector;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents a dot chart to visualize sort algorithms.
|
||||||
|
* @author MSchaefer
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class DotChart extends VisualizationElement {
|
||||||
|
|
||||||
|
private static final int DOT_DIAMETER = 5;
|
||||||
|
private static final int START_X_POS = 20;
|
||||||
|
private int startYPos;
|
||||||
|
private int startXPos;
|
||||||
|
private int height;
|
||||||
|
private int width;
|
||||||
|
private Vector<Integer> values;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new dot chart.
|
||||||
|
* @param values Vector with values the dot chart visualizes.
|
||||||
|
* @param height Height of the dot chart.
|
||||||
|
* @param width Width of the dot chart.
|
||||||
|
*/
|
||||||
|
public DotChart(Vector<Integer> values, int height, int width) {
|
||||||
|
super();
|
||||||
|
this.setValues(values);
|
||||||
|
this.setHeight(height);
|
||||||
|
this.setWidth(width);
|
||||||
|
startYPos = height - 20;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new dot chart.
|
||||||
|
* @param values Array with values the dot chart visualizes.
|
||||||
|
* @param height Height of the dot chart.
|
||||||
|
* @param width Width of the dot chart.
|
||||||
|
*/
|
||||||
|
public DotChart(int[] values, int height, int width) {
|
||||||
|
super();
|
||||||
|
|
||||||
|
this.setHeight(height);
|
||||||
|
this.setWidth(width);
|
||||||
|
startYPos = height - 20;
|
||||||
|
|
||||||
|
Vector<Integer> valueVector = new Vector<Integer>();
|
||||||
|
|
||||||
|
for(int element : values){
|
||||||
|
valueVector.add(element);
|
||||||
|
}
|
||||||
|
this.setValues(valueVector);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void draw(Graphics g) {
|
||||||
|
|
||||||
|
int xpos = START_X_POS;
|
||||||
|
int section = (width)/values.size();
|
||||||
|
for(Integer value : values){
|
||||||
|
g.fillOval(xpos, startYPos - value * (height/values.size()) - DOT_DIAMETER, DOT_DIAMETER, DOT_DIAMETER);
|
||||||
|
xpos = xpos + section;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ground
|
||||||
|
g.drawLine(START_X_POS - 10, startYPos, xpos-10, startYPos);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param values the values to set
|
||||||
|
*/
|
||||||
|
public void setValues(Vector<Integer> values) {
|
||||||
|
this.values = values;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return Returns the values.
|
||||||
|
*/
|
||||||
|
public Vector<Integer> getValues() {
|
||||||
|
return values;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param startXPos the startXPos to set
|
||||||
|
*/
|
||||||
|
public void setStartXPos(int startXPos) {
|
||||||
|
this.startXPos = startXPos;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the startXPos
|
||||||
|
*/
|
||||||
|
public int getStartXPos() {
|
||||||
|
return startXPos;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param height the height to set
|
||||||
|
*/
|
||||||
|
public void setHeight(int height) {
|
||||||
|
this.height = height;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the height
|
||||||
|
*/
|
||||||
|
public int getHeight() {
|
||||||
|
return height;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param width the width to set
|
||||||
|
*/
|
||||||
|
public void setWidth(int width) {
|
||||||
|
this.width = width;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the width
|
||||||
|
*/
|
||||||
|
public int getWidth() {
|
||||||
|
return width;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user