已知长宽高用php求周长体积_php – 计算周长值

我有一个矩形地图,存储为多维数组(即$map [row] [col]),我必须追踪玩家看到哪些方块,放在这张地图上的任何位置.

玩家可见性是圆形的,半径未知(但在运行时给出)我只需要整数解.

我知道周长公式是

x^2 + y^2 <= r^2

但我怎么能存储一切?

我需要这些值,因为那时我可以“揭示”地图方块.

最好的是多维数组(即__ $sol [x] [y] __).

这是我正在使用的一段代码.它没有得到纠正,因为它假设视觉是正方形而不是圆形.

计算平方

$this->vision_offsets_2 = array();

//visibility given as r^2

$mx = (int)(sqrt($this->viewradius2));

$mxArr = range($mx * -1, $mx + 1);

foreach ($mxArr as $d_row)

{

foreach ($mxArr as $d_col)

{

$this->vision_offsets_2[] = array($d_row, $d_col);

}

}

这是我如何应用它

foreach($player as $bot)

{

foreach($visibility as $offset)

{

$vision_row = $offset[0] + $bot[0];

$vision_col = $offset[1] + $bot[1];

if(isset($map[$vision_row][$vision_col]))

{

if( $map[$vision_row][$vision_col] == UNSEEN) {

$map[$vision_row][$vision_col] = LAND; }

}

}

}

在这里你可以找到机器人视图:你可以看到一个非完美的圆圈.

我该如何追踪?顺便说一下,在这个例子中,半径^ 2是55,橙色圆圈是玩家,棕色方块是可见的.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值