LINUX.ORG.RU

libshp: посчитать число вершин двумя способами (ошибка)


0

1

Есть карта SHAPE-формата, .shp/shx. Пробую посчитать число вершин на карте двумя способами:

1.
  int count;
  count = 0;
  for (i = 0; i < nEntities; i++) {
    SHPObject *pObj;
    pObj = SHPReadObject (h, i);
    count += pObj->nVertices;
  }
  printf ("count of vertices: %d\n", count);
2.
  int n;
  n = 0;
  for (i = 0; i < nEntities; i++) {
    SHPObject *pObj;
    pObj = SHPReadObject (h, i);
    for (j = 0; j < pObj->nVertices-1; j++,n++);
  }
  printf ("n: %d\n", n);
В первом случае выдает count of vertices: 4016 во втором, n: 3578 Почему?

★★★★★

мда, случай тяжёлый, лор тут не поможет.

anonymous
()
Ответ на: комментарий от Rastafarra

тьфу ... специфика вычислений ... совсем забыл про -1.

pacify ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.