¿Esto pseudocódigo asume un índice basado en cero?

votos
0

No estoy seguro de si cuando escriben 1 si este es el primer o el segundo elemento de la matriz:

function DouglasPeucker(PointList[], epsilon)
 //Find the point with the maximum distance
 dmax = 0
 index = 0
 for i = 2 to (length(PointList) - 1)
  d = OrthogonalDistance(PointList[i], Line(PointList[1], PointList[end])) 
  if d > dmax
   index = i
   dmax = d
  end
 end

 //If max distance is greater than epsilon, recursively simplify
 if dmax >= epsilon
  //Recursive call
  recResults1[] = DouglasPeucker(PointList[1...index], epsilon)
  recResults2[] = DouglasPeucker(PointList[index...end], epsilon)

  // Build the result list
  ResultList[] = {recResults1[1...end-1] recResults2[1...end]}
 else
  ResultList[] = {PointList[1], PointList[end]}
 end

 //Return the result
 return ResultList[]
end

Por ejemplo, yo estoy implementar esto en C ++ por lo que donde dice para i = 2, debería hacer yo por int i = 1?

Gracias

Publicado el 16/08/2010 a las 19:07
fuente por usuario
En otros idiomas...                            


2 respuestas

votos
2

En una conjetura, parece que el índice 1 es el primer elemento de la matriz (de lo contrario el primer elemento no está siendo indexado en cualquier lugar). La mejor manera de saber con seguridad es probablemente probarlo aunque :)

Respondida el 16/08/2010 a las 19:09
fuente por usuario

votos
1

Es indexada 1. Observe la línea:

recResults1[] = DouglasPeucker(PointList[1...index], epsilon)

tanto como:

ResultList[] = {recResults1[1...end-1] recResults2[1...end]}

Tanto el acceso desde el principio de la lista.

Respondida el 16/08/2010 a las 19:10
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more