2

有一个鹅卵石商人。他出售用于擦亮地板的鹅卵石。他的主要职责是测量房间两侧的长度。但他有时会犯错,错误会导致损失。所以,他来找你,让你做一辆智能小车,它可以沿着房间的墙壁跑,并计算它们的长度。

汽车必须从它开始的地方回来。这意味着起点与终点相同。当汽车给出房间墙壁的长度时,您可以计算地板的表面积。

知道了表面积,你就可以计算出用鹅卵石覆盖整个地板的价格。1平方米的面积需要3公斤的鹅卵石。鹅卵石的价格为每公斤 5 美元。

例如,使用两个数组说明了汽车的测量值。

Array 1 = {L, R, L, R, R, L, R, R, L, R, R, L, R, L, L, R, Z}

其中 L表示,汽车左转。R表示汽车右转。Z 表示,终点在最后一圈之后。下图将消除任何误解(在此示例中Array 1 = {L, R, R, R, Z})。

Array 2 = {3, 4, 2, 3, 2, 4, 5, 4, 2, 3, 2, 1, 2, 2, 2, 1, 2}

的元素Array2表示经过相应转弯后汽车所经过的长度(以米为单位)。

{3L, 4R, 2L, 3R, 2R, 4L, 5R, 4R, 2L, 3R, 2R, 1L, 2R, 2L, 2L, 1R, 2Z}

在这个表示中,可以清楚地看到从入口转折点的方向以及到下一个转折点的距离。中的最后一个元素表示 中对应的长度Z是最后的距离,车子在跑完这个长度后到达终点。 Array1Array2

给定图片的面积是63平方米,覆盖它的成本是945美元。!

4

2 回答 2

2

只需保存每个顶点的每个坐标。然后用它来计算面积

您首先需要从 L,2 R,5 中导出绳索,...。

Start from origin(assuming downwards is +y and rightwards is +x on screen):

L,2---->go left 2 units.           Result: P1=(-2,0)
R,1---->turn right and go 1 units. Result: P2=(-2,-1)
R,3--->turn right and go 3 units.  Result: P3=(1,-1)

...
...

Lets say we have 3 points: P1=(-2,0), P2=(-2,-1), P3=(1,-1)
Area=0.5*abs(x1*y2+x2*y3+x3*y1-x2*y1-x3*y2-x1*y3)
    =0.5*abs(2+2+0-0+1-2)
    =0.5*3.0
    =1.5 units

当您编写时,Wolframalpha.com 给出了相同的结果(1.5):

"三角形面积 (-2,0) (-2,-1) (1,-1)"

使用所有这些点作为 Shoelace_formula 的数据来获得封闭区域 关于此的数学是:

在此处输入图像描述

然后,您唯一需要将其与卵石/面积/金钱的成本相乘。

于 2012-09-03T09:31:12.667 回答
0

这个问题实际上是无法回答的;你必须知道汽车每转多少弯。假设每一个转弯都是直角的,huseyin tugrul buyukisik 的,答案是可惜好。

于 2013-05-23T10:24:01.663 回答