private void initializeFigures() {
if (!isInEditMode()) cancelAnimation();
int size = Math.min(width, height);
double circumference = numberOfAngles * figurePadding;
double distanceFromCenter = circumference / (Math.PI * 2);
int radius = size / 2 - (int) (distanceFromCenter);
double startAngle = 90 + (360.0 / numberOfAngles) / 2;
List<PointF> angles = new ArrayList<>();
for (int i = 0; i < numberOfAngles; i++) {
double angle = startAngle + i * (360.0 / numberOfAngles);
angles.add(new PointF(
(float) (center.x + radius * Math.cos(Math.toRadians(angle))),
(float) (center.y + radius * Math.sin(Math.toRadians(angle))))
);
}
figures = new ArrayList<>();
if (TYPE.KITE.equals(type)) {
buildFiguresUsingKites(angles, startAngle, distanceFromCenter);
} else {
buildFiguresUsingTriangles(angles, startAngle, distanceFromCenter);
}
setupAnimation();
}
GeometricProgressView.java 文件源码
java
阅读 48
收藏 0
点赞 0
评论 0
项目:geometric-progress-view
作者:
评论列表
文章目录