java: some trigger images do not display top dead center properly fix #2075

This commit is contained in:
rusefillc 2020-12-13 23:32:46 -05:00
parent 247fd38f1a
commit 699cf98e4b
2 changed files with 6 additions and 6 deletions

View File

@ -234,7 +234,7 @@ public class TriggerImage {
int middle = WHEEL_BORDER + WHEEL_DIAMETER / 2; int middle = WHEEL_BORDER + WHEEL_DIAMETER / 2;
if (showTdc) { if (showTdc) {
double tdcAngle = Math.toRadians(_180 + shape.getTdcPosition()); double tdcAngle = Math.toRadians(_180 + shape.getTdcPositionIn360());
int smallX = (int) (WHEEL_DIAMETER / 2 * Math.sin(tdcAngle)); int smallX = (int) (WHEEL_DIAMETER / 2 * Math.sin(tdcAngle));
int smallY = (int) (WHEEL_DIAMETER / 2 * Math.cos(tdcAngle)); int smallY = (int) (WHEEL_DIAMETER / 2 * Math.cos(tdcAngle));

View File

@ -53,8 +53,8 @@ class TriggerWheelInfo {
} }
} }
public double getTdcPosition() { public double getTdcPositionIn360() {
return tdcPosition; return isFirstCrankBased() ? tdcPosition : getCompressedAngle(tdcPosition);
} }
@NotNull @NotNull
@ -70,7 +70,7 @@ class TriggerWheelInfo {
@NotNull @NotNull
private static List<TriggerSignal> compressAngle(List<TriggerSignal> wheel) { private static List<TriggerSignal> compressAngle(List<TriggerSignal> wheel) {
return wheel.stream().map(triggerSignal -> { return wheel.stream().map(triggerSignal -> {
double compressAngle = getCompressedAngle(triggerSignal); double compressAngle = getCompressedAngle(triggerSignal.angle);
return new TriggerSignal(triggerSignal.waveIndex, triggerSignal.state, compressAngle); return new TriggerSignal(triggerSignal.waveIndex, triggerSignal.state, compressAngle);
}).collect(Collectors.toList()); }).collect(Collectors.toList());
} }
@ -78,8 +78,8 @@ class TriggerWheelInfo {
/** /**
* this is about converting 720 cycle of crank wheel shape into normal 360 circle range * this is about converting 720 cycle of crank wheel shape into normal 360 circle range
*/ */
private static double getCompressedAngle(TriggerSignal triggerSignal) { private static double getCompressedAngle(double angle) {
return triggerSignal.angle / 2; return angle / 2;
} }
public List<TriggerSignal> getSecondWheeTriggerSignals() { public List<TriggerSignal> getSecondWheeTriggerSignals() {