chi*_*org 6 javascript ruby language-agnostic math coordinates
我有一个矩形(称为目标),并希望在旁边放置另一个矩形(称为卫星).卫星具有一个位置(顶部,底部,左侧,右侧),用于确定相对于目标的放置边缘.它还有一个对齐方式 (左侧,中间,右侧为顶部和底部位置,顶部,中间和底部为左侧和右侧位置).
例:
+----------+----------------------------+
| | |
| Target | Satellite, Position=RIGHT, |
| | Align=TOP |
| | |
| |----------------------------+
| |
+----------+
Run Code Online (Sandbox Code Playgroud)
我知道目标的左上角坐标以及它的宽度和高度.我也知道卫星的宽度和高度,并想要计算它的左上角坐标.我可以将其作为一系列12 if条款来实现,但也许有更优雅,数学或算法的方法来实现它.还有另一种方法:
# s = satellite, t = target
if pos == "top" && align == "left"
s.x = t.x
s.y = t.y - s.height
else if pos == "top" && align == "center"
s.x = t.x + t.width / 2 - s.width / 2
s.y = t.y - s.height
# etc, etc
Run Code Online (Sandbox Code Playgroud)
Ruby或JavaScript中的任何好的解决方案?
如果你使用了一系列对象,它就会起作用:
变量位置 = {
顶部:{左:{x:tx,y:yy-s.height},中心:{x:tx.x + t.width/2- s.width/2,y:ty-s.height}}
//ETC....
}
//然后要获取位置,您可以简单地
var pos = 位置[位置][对齐])
| 归档时间: |
|
| 查看次数: |
284 次 |
| 最近记录: |