矩形和不规则矩形如何出面积公式如图
本帖最后由 15152315475 于 2019-10-17 17:59 编辑现在就这三个图形如何出计算公式 和图片那种一样的 框选可以一起出或者可以分开来出计算公式
单独一个矩形出一个计算公式其他两个不规则图形也出一套,或者集合在一起出计算公式,
现在有大批量需要出计算公式,希望帮帮忙。
本帖最后由 mahuan1279 于 2019-4-10 12:18 编辑
感觉可以用递归来解决。主要还是求分块的问题。 我是被标题吸引进来的。。。。头一回听说有不规则矩形的说法。。。应该是不规则多边形吧。 evayleung 发表于 2019-4-10 12:51
我是被标题吸引进来的。。。。头一回听说有不规则矩形的说法。。。应该是不规则多边形吧。
谢谢 老哥提醒 mahuan1279 发表于 2019-4-10 11:40
感觉可以用递归来解决。主要还是求分块的问题。
老哥有解决方法吗?
本帖最后由 mahuan1279 于 2019-4-10 23:46 编辑
15152315475 发表于 2019-4-10 21:26
老哥有解决方法吗?
方法不是已经告诉你了吗?剩下的就是怎么获得你所说的“不规则矩形”的最小外接矩形。同时规定逆时针方向的矩形面积为正,顺时针方向的为负。首先判断是否为矩形,若不是则获取“不规则矩形”的所有顶点,按逆时针排序。然后获取其最小外接矩形的顶点,插入到原序列中横纵坐标对应的部分,形成多个有方向的分部。递归下去,直至每个分部都是矩形,然后求面积和。(注意顺时针方向矩形面积为负,逆时针的为正。) ;;;给个参考吧。
_$ (defun f(lst)
(if (or (= (car lst) 1) (= (cadr lst) 1))
(setq va (strcat (itoa (car lst)) "*" (itoa (cadr lst))))
(setq va (strcat (f (list (/ (car lst) 2) (/ (cadr lst) 2)))
"+"
(f (list (- (car lst) (/ (car lst) 2))(- (cadr lst) (/ (cadr lst) 2))))
)
)
)
)
F
_$ (f '(16 19))
"1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*2+1*1+1*1+1*1+1*2+1*1+1*1+1*1+1*2"
页:
[1]