我希望创建类似虚拟森林的东西。
我有:
我怎样才能传播树木:
由于
根据要求提供更多信息:
我创建了以下php脚本,但是它不处理空位置,也不准确将图像拟合到div中:
$forest1 = null;
for ($a=1; $a < 201; $a++) {
// width * height (500*280)
$total_area_in_pixels = 140000;
$total_elements = 200;
$area_per_object = $total_area_in_pixels / $total_elements;
$element_height = round (sqrt($area_per_object) / 100 * 70);
$random_margin = rand(0, $element_height / 5);
$tree_type = rand(1,4);
$style = "height: {$element_height}px; margin: {$random_margin}px;";
$forest1 .= "<img src='images/trees/tree{$tree_type}.png' alt='{$a}' title='tree' style='{$style}'>\n";
}
答案 0 :(得分:2)
您需要先了解如何进行定位。您可以将树绝对地设置为div父级作为容器,也可以将树绝对地基于整个页面作为容器进行定位。
要将父级用作容器,您可以这样做: 将div设置为position:relative。编写javascript以创建IMG元素,然后将其位置设置为“绝对”。确保在创建元素时将它们创建为要包含它们的DIV的子元素。
要将页面用作容器,您可以这样做: 编写javascript以创建IMG元素并将其位置设置为“绝对”。不要把它们作为DIV的子元素,因为它无关紧要。使用jQuery或基本的javascript测试来找出容器div的确切页面位置。每次放置树时,都需要计算相对于容器div的位置。
定位树基本上是这样的: 编写一个简单的算法来生成随机x和y坐标对以定位每个元素并执行此操作。然后检查每棵树的位置,宽度和高度与您不想要覆盖的方形区域。如果您在该区域中找到了一棵树,请将其移动一段以将其从该区域中取出,或将其删除。请务必记住,如果您完全定位在整个页面中,您将始终必须添加或减去页面容器位置作为offste,以便在页面上获取所需的树。
这应该足以让你开始。