This commit is contained in:
ysCha 2026-04-08 16:22:06 +09:00
parent 828ea12484
commit c05c08e390
2 changed files with 353 additions and 619 deletions

View File

@ -1765,10 +1765,10 @@ export function useMode() {
const reversedVertices = [...polygon.vertices].reverse()
const reversedLines = []
const n = lines.length
// lines[i] 는 edge i (vertex[i] → vertex[i+1]) 에 해당. reverse 후의 edge j 는
// 원본 edge (n - 1 - j) 와 같은 선분이므로 lines 배열도 동일 매핑으로 재정렬.
// reverse 후 edge j 는 원본 edge (n-2-j) 의 역방향에 해당
// (reverse edge 0 = v[n-1]→v[n-2] = 원본 edge n-2 역방향, ..., 마지막 edge = 원본 edge n-1 역방향)
for (let j = 0; j < n; j++) {
reversedLines.push(lines[(n - 1 - j) % n])
reversedLines.push(lines[((n - 2 - j) % n + n) % n])
}
polygon = createRoofPolygon(reversedVertices)
lines = reversedLines
@ -1777,7 +1777,7 @@ export function useMode() {
const offsetEdges = []
polygon.edges.forEach((edge, i) => {
const offset = lines[i % lines.length].attributes.offset
const offset = lines[i % lines.length].attributes.offset === 0 ? 1 : lines[i % lines.length].attributes.offset
const dx = edge.outwardNormal.x * offset
const dy = edge.outwardNormal.y * offset
offsetEdges.push(createOffsetEdge(edge, dx, dy))
@ -1819,8 +1819,9 @@ export function useMode() {
const reversedVertices = [...polygon.vertices].reverse()
const reversedLines = []
const n = lines.length
// reverse 후 edge j 는 원본 edge (n-2-j) 의 역방향에 해당
for (let j = 0; j < n; j++) {
reversedLines.push(lines[(n - 1 - j) % n])
reversedLines.push(lines[((n - 2 - j) % n + n) % n])
}
polygon = createRoofPolygon(reversedVertices)
lines = reversedLines
@ -1829,8 +1830,7 @@ export function useMode() {
const offsetEdges = []
polygon.edges.forEach((edge, i) => {
const offset = lines[i % lines.length].attributes.offset
const offset = lines[i % lines.length].attributes.offset === 0 ? 1 : lines[i % lines.length].attributes.offset
const dx = edge.inwardNormal.x * offset
const dy = edge.inwardNormal.y * offset
offsetEdges.push(createOffsetEdge(edge, dx, dy))

File diff suppressed because it is too large Load Diff