Compare commits

..

No commits in common. "519a451682f00045f3cdf0a22e7178f360274625" and "6b32112f721444dd8f3bbee3107c6ac2c55e6144" have entirely different histories.

2 changed files with 46 additions and 53 deletions

View File

@ -4,18 +4,6 @@ import { onlyNumberInputChange } from '@/util/input-utils'
export default function RightAngle({ props }) { export default function RightAngle({ props }) {
const { getMessage } = useMessage() const { getMessage } = useMessage()
const { length1, setLength1, length1Ref, length2, setLength2, length2Ref, arrow1, setArrow1, arrow2, setArrow2 } = props const { length1, setLength1, length1Ref, length2, setLength2, length2Ref, arrow1, setArrow1, arrow2, setArrow2 } = props
const handleClickArrow = (arrow) => {
const arrowType = arrow === '↑' ? 'ArrowUp' : arrow === '↓' ? 'ArrowDown' : arrow === '←' ? 'ArrowLeft' : arrow === '→' ? 'ArrowRight' : ''
setArrow2(arrow)
const originLeng2Val = length2Ref.current.value
if (originLeng2Val === '') {
length2Ref.current.value = '0'
}
length2Ref.current.focus()
length2Ref.current.value = originLeng2Val
document.dispatchEvent(new KeyboardEvent('keydown', { key: arrowType }))
}
return ( return (
<div className="outline-wrap"> <div className="outline-wrap">
<div className="outline-inner"> <div className="outline-inner">
@ -101,25 +89,29 @@ export default function RightAngle({ props }) {
<button <button
className={`direction up ${arrow2 === '↑' ? 'act' : ''}`} className={`direction up ${arrow2 === '↑' ? 'act' : ''}`}
onClick={() => { onClick={() => {
handleClickArrow('↑') setArrow2('↑')
document.dispatchEvent(new KeyboardEvent('keydown', { key: 'ArrowUp' }))
}} }}
></button> ></button>
<button <button
className={`direction down ${arrow2 === '↓' ? 'act' : ''}`} className={`direction down ${arrow2 === '↓' ? 'act' : ''}`}
onClick={() => { onClick={() => {
handleClickArrow('↓') setArrow2('↓')
document.dispatchEvent(new KeyboardEvent('keydown', { key: 'ArrowDown' }))
}} }}
></button> ></button>
<button <button
className={`direction left ${arrow2 === '←' ? 'act' : ''}`} className={`direction left ${arrow2 === '←' ? 'act' : ''}`}
onClick={() => { onClick={() => {
handleClickArrow('←') setArrow2('←')
document.dispatchEvent(new KeyboardEvent('keydown', { key: 'ArrowLeft' }))
}} }}
></button> ></button>
<button <button
className={`direction right ${arrow2 === '→' ? 'act' : ''}`} className={`direction right ${arrow2 === '→' ? 'act' : ''}`}
onClick={() => { onClick={() => {
handleClickArrow('→') setArrow2('→')
document.dispatchEvent(new KeyboardEvent('keydown', { key: 'ArrowRight' }))
}} }}
></button> ></button>
</div> </div>

View File

@ -807,59 +807,60 @@ export const useTrestle = () => {
const getAzimuth = (parent) => { const getAzimuth = (parent) => {
const { moduleCompass, surfaceCompass, direction } = parent const { moduleCompass, surfaceCompass, direction } = parent
let resultAzimuth = surfaceCompass || moduleCompass if (surfaceCompass) {
if (surfaceCompass > 180) {
return surfaceCompass - 360
}
return surfaceCompass
}
switch (direction) { switch (direction) {
case 'south': { case 'south': {
if (resultAzimuth < 0) { if (moduleCompass < 0) {
return -1 * resultAzimuth return -1 * moduleCompass
} else if (resultAzimuth === 0) { } else if (moduleCompass === 0) {
return 0 return 0
} else if (resultAzimuth < 180) { } else if (moduleCompass < 180) {
return -1 * resultAzimuth return -1 * moduleCompass
} else if (resultAzimuth === 180) { } else if (moduleCompass === 180) {
return 180 return 180
} }
} }
case 'north': { case 'north': {
if (resultAzimuth < 0) { if (moduleCompass < 0) {
return -1 * (180 + resultAzimuth) return -1 * (180 + moduleCompass)
} else if (resultAzimuth === 0) { } else if (moduleCompass === 0) {
return 180 return 180
} else if (resultAzimuth < 180) { } else if (moduleCompass < 180) {
return 180 - resultAzimuth return 180 - moduleCompass
} else if (resultAzimuth === 180) { } else if (moduleCompass === 180) {
return 0 return 0
} }
} }
case 'west': { case 'west': {
if (resultAzimuth > -180 && resultAzimuth < 0) { if (moduleCompass > -180 && moduleCompass < -90) {
return -1 * (90 + resultAzimuth) return -180 - (90 + moduleCompass)
} else if (resultAzimuth === 0) { } else if (moduleCompass < 0) {
return -180 + (90 - resultAzimuth) return 180 - (90 + moduleCompass)
} else if (resultAzimuth < 180) { } else if (moduleCompass === 0) {
if (resultAzimuth > 90) { return 90
return 180 + (90 - resultAzimuth) } else if (moduleCompass < 180) {
} return 90 - moduleCompass
return -180 + (90 - resultAzimuth) } else if (moduleCompass === 180) {
} else if (resultAzimuth === 180) { return -90
return 180 + (90 - resultAzimuth)
} }
} }
case 'east': { case 'east': {
if (resultAzimuth === 0) { if (moduleCompass < 0) {
return 90 - resultAzimuth return -(90 + moduleCompass)
} else if (resultAzimuth > 0 && resultAzimuth < 180) { } else if (moduleCompass === 0) {
return 90 - resultAzimuth return -90
} else if (resultAzimuth === 180) { } else if (moduleCompass < 90) {
return 90 - resultAzimuth return -180 + (90 - moduleCompass)
} else if (resultAzimuth > -180 && resultAzimuth < 0) { } else if (moduleCompass < 180) {
if (resultAzimuth < -90) { return 180 + (90 - moduleCompass)
return -180 - (90 + resultAzimuth) } else if (moduleCompass === 180) {
} return 90
return 180 - (90 + resultAzimuth)
} }
} }
} }