Added 3 additional presets that have modules inside the perimeter

This commit is contained in:
2025-10-29 10:47:31 -04:00
parent b766527a97
commit 2684ed2c72
2 changed files with 92 additions and 3 deletions

View File

@ -159,7 +159,7 @@ const PresetConfigs = {
return modules;
},
eightWheel: (size) => {
eightWheelOctogon: (size) => {
const radius = size / 2;
const modules = [];
for (let i = 0; i < 8; i++) {
@ -171,7 +171,64 @@ const PresetConfigs = {
});
}
return modules;
}
},
eightWheelSquare: (size) => {
const full = size;
const half = size / 2;
return [
{ x: full, y: full, name: "Outer FL" },
{ x: full, y: -full, name: "Outer FR" },
{ x: -full, y: full, name: "Outer BL" },
{ x: -full, y: -full, name: "Outer BR" },
{ x: half, y: half, name: "Inner FL" },
{ x: half, y: -half, name: "Inner FR" },
{ x: -half, y: half, name: "Inner BL" },
{ x: -half, y: -half, name: "Inner BR" }
];
},
twelveWheelHexagon: (size) => {
const outerRadius = size;
const innerRadius = size / 2;
const modules = [];
for (let i = 0; i < 6; i++) {
const angle = (Math.PI / 2) + (i * Math.PI / 3);
modules.push({
x: outerRadius * Math.cos(angle),
y: outerRadius * Math.sin(angle),
name: `Module ${i + 1}`
});
modules.push({
x: innerRadius * Math.cos(angle),
y: innerRadius * Math.sin(angle),
name: `Module ${i + 7}`
});
}
return modules;
},
sixteenWheelOctogon: (size) => {
const outerRadius = size;
const innerRadius = size / 2;
const modules = [];
for (let i = 0; i < 8; i++) {
const angle = (Math.PI / 2) + (i * Math.PI / 4);
modules.push({
x: outerRadius * Math.cos(angle),
y: outerRadius * Math.sin(angle),
name: `Module ${i + 1}`
});
modules.push({
x: innerRadius * Math.cos(angle),
y: innerRadius * Math.sin(angle),
name: `Module ${i + 9}`
});
}
return modules;
},
};
/*
@ -205,6 +262,9 @@ const preset4WheelBtn = document.getElementById('preset-4wheel');
const preset4RectBtn = document.getElementById('preset-4rect');
const preset6WheelBtn = document.getElementById('preset-6wheel');
const preset8WheelBtn = document.getElementById('preset-8wheel');
const preset8SquareBtn = document.getElementById('preset-8square');
const preset12HexBtn = document.getElementById('preset-12hex');
const preset16OctBtn = document.getElementById('preset-16oct');
/*
* END DOM VARIABLES
@ -284,13 +344,39 @@ preset6WheelBtn.addEventListener('click', () => {
});
preset8WheelBtn.addEventListener('click', () => {
const positions = PresetConfigs.eightWheel(robotSize);
const positions = PresetConfigs.eightWheelOctogon(robotSize);
robot.setModules(positions);
robot.setName("8-Wheel Octogon");
createModuleDisplays(robot);
updateModuleDisplays(robot);
});
preset8SquareBtn.addEventListener('click', () => {
const positions = PresetConfigs.eightWheelSquare(robotSize);
robot.setModules(positions);
robot.setName("8-Wheel Square");
createModuleDisplays(robot);
updateModuleDisplays(robot);
});
preset12HexBtn.addEventListener('click', () => {
const positions = PresetConfigs.twelveWheelHexagon(robotSize);
robot.setModules(positions);
robot.setName("12-Wheel Hexagon");
createModuleDisplays(robot);
updateModuleDisplays(robot);
});
preset16OctBtn.addEventListener('click', () => {
const positions = PresetConfigs.sixteenWheelOctogon(robotSize);
robot.setModules(positions);
robot.setName("16-Wheel Octogon");
createModuleDisplays(robot);
updateModuleDisplays(robot);
});
generateInputsBtn.addEventListener('click', () => {
const count = parseInt(moduleCountInput.value);