我正为一个数学题而挣扎,需要你的帮助。我想知道以下几点:
。
为了解决这个问题,我知道以下几点:
f 215
任何想法,哦,如何确定内盒主要是向左还是向右。顶部还是底部?
谢谢!

发布于 2011-10-28 17:30:07
你可以通过平均内盒的左右边来计算出它的中心。然后将其与外盒中心进行比较,找出它的主要方向。
在下面的代码中,我打电话给
外框的高度和宽度,这是静态的,在200 at。
outerH和outerW
内框的宽度(var X)
innerW
(我假设你也知道innerBox的高度,我叫它innerH)
内盒距外盒左侧的距离(var x2)
leftPadding
内盒距顶部的距离,(var y)
topPadding
function isPrimarilyLeft(outerW, innerW, leftPadding) {
var outerCentroidX = outerW / 2;
// center = (leftedge + right edge) / 2
// leftedge = leftPadding
// rightedge = leftpadding + innerWidth
// center = (leftPadding + leftPadding + width) / 2
// = 2*leftPadding / 2 + width / 2 =
var innerCentroidX = leftPadding + innerW / 2;
return innerCentroidX < outerCentroidX;
}
function isPrimarilyTop(outerH, innerH, topPadding) {
var outerCentroidY = outerH / 2;
var innerCentroidY = topPadding + innerH / 2;
return innerCentroidY < outerCentroidY;
}发布于 2011-10-28 17:36:27
我将解释一个可能的解决方案的基本思维过程。
若要计算它是否为“左”,您需要确定哪个距离更大,即内框左边的距离、外缘距离还是右侧距离。
你已经知道左边的距离了。要计算右边的距离,需要取总outerWidth并减去内框的宽度和距左侧的距离:
|-------------------------Outer Box----------------------------------|
|---left distance---|---------inner box--------|---right distance----|现在,如果左距离大于右,它是“右”,如果它们相等,它是居中的,如果它较小,它就是“左”。
自上而下也是如此。
发布于 2011-10-28 17:34:06
该框主要位于左侧:x< (200 - x2)/2
该框主要位于右侧:x> (200 - x2)/2
这个盒子主要在顶部:y<(200-y)/2(我想你可以计算盒子的高度- Y)
该框主要位于底部:y> (200 - y)/2
您应该用宽度/高度常数替换200。
https://stackoverflow.com/questions/7932662
复制相似问题