From 595b100b08d8eebe3fed2f5e5b67b3e6144b796c Mon Sep 17 00:00:00 2001 From: MusclePr Date: Thu, 23 Jan 2025 18:47:34 +0900 Subject: [PATCH 1/2] release for 1.1.0 --- pom.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index cea53df..7ac9953 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - com.funnyboyroks + com.github.funnyboy-roks DrawLib 1.1.0-SNAPSHOT jar @@ -54,8 +54,8 @@ - funnyboy_roks - https://maven.funnyboyroks.com/snapshots + jitpack.io + https://jitpack.io From 2a3ba88c23826bba97a2460739238c23b43d1af9 Mon Sep 17 00:00:00 2001 From: Muscle Date: Fri, 24 Jan 2025 01:49:13 +0900 Subject: [PATCH 2/2] Change the arrangement of line particles from equal spacing to power spacing. --- .../funnyboyroks/drawlib/renderer/ShapeRenderer.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/funnyboyroks/drawlib/renderer/ShapeRenderer.java b/src/main/java/com/funnyboyroks/drawlib/renderer/ShapeRenderer.java index 87a7384..a523fc7 100644 --- a/src/main/java/com/funnyboyroks/drawlib/renderer/ShapeRenderer.java +++ b/src/main/java/com/funnyboyroks/drawlib/renderer/ShapeRenderer.java @@ -136,12 +136,14 @@ public void drawLine(@NotNull Location a, @NotNull Location b) { final double lengthOfStartOptimize = lengthOfTerm * 2 + lengthOfMinMiddle; // |<--------------------------------- length ------------------------------------>| // | term | middle | term | - // ********** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ********** + // ************ * * * * * * * * * * * * * * * * * * * * ************ if (this.optimize && length >= lengthOfStartOptimize) { final double ppb = 1.0 / step_size; // points per block final int term = (int)(lengthOfTerm * ppb); // number of terminal points final int middle = (int)(lengthOfMinMiddle * ppb); // number of middle points final int max = term * 2 + middle; // max points on line + final double lengthOfMiddle = length - lengthOfTerm * 2; + final double gamma = 2.2; for (int i = 0; i <= max; i++) { double mag; // 0.0 ~ 1.0 if (i >= term + middle) { @@ -149,7 +151,13 @@ public void drawLine(@NotNull Location a, @NotNull Location b) { } else if (i < term) { mag = ((double) i / term) * lengthOfTerm / length; } else { - mag = (lengthOfTerm + ((double)(i - term) / middle) * (length - lengthOfTerm * 2)) / length; + double percent = (double)(i - term) / middle; // 0.0 ~ 1.0 + if (percent < 0.5) { + percent = Math.pow(percent * 2, gamma) / 2; + } else { + percent = 1.0 - Math.pow((1.0 - percent) * 2, gamma) / 2; + } + mag = (lengthOfTerm + percent * lengthOfMiddle) / length; } Location l = vec.clone().mult(mag).toLocation(a.getWorld()); l.add(a);