package com.baselet.element.draw; import java.util.Arrays; import java.util.List; import com.baselet.control.basics.geom.PointDouble; import com.baselet.diagram.draw.DrawHandler; public class DrawHelper { public static List<PointDouble> drawPackage(DrawHandler drawer, double upperLeftX, double upperLeftY, double titleHeight, double titleWidth, double fullHeight, double fullWidth) { PointDouble start = new PointDouble(upperLeftX, upperLeftY); List<PointDouble> points = Arrays.asList( start, new PointDouble(upperLeftX + titleWidth, upperLeftY), new PointDouble(upperLeftX + titleWidth, upperLeftY + titleHeight), new PointDouble(upperLeftX + fullWidth, upperLeftY + titleHeight), new PointDouble(upperLeftX + fullWidth, upperLeftY + fullHeight), new PointDouble(upperLeftX, upperLeftY + fullHeight), start); drawer.drawLines(points); drawer.drawLines(new PointDouble(upperLeftX, upperLeftY + titleHeight), new PointDouble(upperLeftX + titleWidth, upperLeftY + titleHeight)); return points; } public static void drawActor(DrawHandler drawer, int hCenter, int yTop, double dimension) { drawer.drawCircle(hCenter, yTop + DrawHelper.headRadius(dimension), DrawHelper.headRadius(dimension)); // Head drawer.drawLine(hCenter - DrawHelper.armLength(dimension), yTop + DrawHelper.armHeight(dimension), hCenter + DrawHelper.armLength(dimension), yTop + DrawHelper.armHeight(dimension)); // Arms drawer.drawLine(hCenter, yTop + DrawHelper.headRadius(dimension) * 2, hCenter, yTop + DrawHelper.headToBodyLength(dimension)); // Body drawer.drawLine(hCenter, yTop + DrawHelper.headToBodyLength(dimension), hCenter - DrawHelper.legSpan(dimension), yTop + DrawHelper.headToLegLength(dimension)); // Legs drawer.drawLine(hCenter, yTop + DrawHelper.headToBodyLength(dimension), hCenter + DrawHelper.legSpan(dimension), yTop + DrawHelper.headToLegLength(dimension)); // Legs } public static double headToLegLength(double dimension) { return legSpan(dimension) * 2 + headToBodyLength(dimension); } private static double legSpan(double dimension) { return dimension; } private static double headToBodyLength(double dimension) { return dimension * 2 + headRadius(dimension) * 2; } private static double armHeight(double dimension) { return armLength(dimension); } public static double armLength(double dimension) { return dimension * 1.5; } private static double headRadius(double dimension) { return dimension / 2; } }