转换测量区域舍入

2024-09-22 20:34:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个旧的程序,我正试图复制在奥多10。我被困在转换平方米到线性米与四舍五入。这是一卷地毯。地毯的宽度是4米,房间宽度是9×5米。为了得到平方米,我将房间宽度乘以房间长度,即45平方米,然后除以4,即线性地毯的宽度,即11.25。你知道吗

线性是11.25,但我不知道他们怎么会得到15。供应商不希望切割地毯,因此程序正在根据地毯的宽度进行某种舍入或计算。要得到所需的平方单位,则将线性x宽度(15x4=60)相乘
(图中地板宽度文字应为地毯宽度) enter image description here

我使用下面的代码来计算房间的平方,但是我无法计算数学,甚至无法尝试线性转换。你知道吗

@api.onchange('roomwidth')
    def _onchange_squaremtr(self):
        self.sqfeet = (self.roomwidth or 1) * (self.roomlength or 1)



    @api.onchange('roomlength')
    def _onchange_roomlenght(self):
        self.sqfeet = (self.roomwidth or 1) * (self.roomlength or 1)

这是另一个例子。你知道吗

enter image description here

enter image description here


Tags: orself程序api宽度def线性供应商
2条回答

场景中必须有一个“允许x%损耗”的因素。即使地毯只需要45平方单位,但我们需要添加损耗量百分比。你知道吗

例如,宽度=9,长度=5

平方单位=9*5=45

总平方单位=45+(45*X%)/100=60平方单位

这里X(允许损耗)=33.33%

请检查是否有任何损耗量余量。你知道吗

它们只是沿着短边填充房间的矩形(也许是为了制作较短的而不是长的)。你知道吗

w=4,房间9x5:A=4x5,B=4x5,C=4x5三件,最后一件裁成4x1带

 A A A A A
 A A A A A
 A A A A A
 A A A A A  
 B B B B B
 B B B B B
 B B B B B
 B B B B B
 C C C C C
     -  cut
 C C C C C
 C C C C C
 C C C C C

w=6,房间13x8:三件A=6x8,B=6x8,C=6x8,最后一件剪成6x1波段

import math
def calccarpet(wdt, roomwdt, roomhgt):
    longer = max( roomwdt, roomhgt)
    shorter = min( roomwdt, roomhgt)
    numpieces = math.ceil(longer / wdt)
    carpetarea = numpieces * wdt * shorter
    return carpetarea

print(calccarpet(4, 5, 9))
print(calccarpet(6, 13, 8))
>>> 
60
144

相关问题 更多 >