楼主你好,我看了看算法,发现有个问题(可能是我的问题):
每一次产生的x,y,z都会参生两个x1,y1,z1这样最终应该是无数个m,所以(int m1=分割算法(x,b)+分割算法(y,b)+分割算法(z,b)+1)并不能递归啊,参数值太多。
整数与否与算法没什么关系。算法先计算一下大面积整除小面积的值,这个是最多能分多少的依据。
不过这个是二维搜索,没记错的话属于NP完全难题。
但你可以简单的先试试长对长宽对宽,能达到目标则最好,否则可以做适当调整(就是长对宽)。
总的来说很麻烦,可以考虑用遗传。
本文实例讲述了js+canvas绘制矩形的方法。分享给大家供大家参考,具体如下:运行效果截图如下:
具体代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>canvas绘制矩形</title>
<script type="text/javascript" >
function draw(id) {
var canvas = document.getElementById("canvas")
if (canvas) {
var context = canvas.getContext("2d")
context.fillStyle = "#DDDDDD"
context.fillRect(0, 0, 400, 400)
context.strokeStyle = "black"
context.fillStyle = "gray"
context.lineWidth = 5
context.fillRect(0,0,200,300)
context.strokeRect(0,0,200,200)
} else {
return
}
}
function drawBorder(id) {
var canvas = document.getElementById("canvas2")
if (canvas) {
var context = canvas.getContext("2d")
context.fillStyle = "red"
context.strokeStyle = "black"
context.lineWidth = 5
context.fillRect(0,0, 300, 200)
context.strokeRect(0,0,300,200)
} else {
return
}
}
window.onload = function () {
draw("canvas")
drawBorder("canvas2")
}
</script>
</head>
<body>
<canvas id="canvas" width="400" style="background:red" height="400"></canvas>
<hr />
<canvas id="canvas2" width="400" height="400"></canvas>
</body>
</html>