Форум программистов, компьютерный форум, киберфорум
Наши страницы
Boost C++
Войти
Регистрация
Восстановить пароль
 
polyaKIDze
63 / 63 / 20
Регистрация: 16.07.2012
Сообщений: 147
1

Подсчет расстояния от точки до клетки вороного

15.12.2014, 03:57. Просмотров 962. Ответов 0
Метки нет (Все метки)

Доброй ночи. Кто-нибудь сталкивался с похожей проблемой?

Построение диаграммы вороного проблем не вызвало. Клетка вороного является полигоном, по крайнем мере для меня. Библиотека также позволяет искать расстояние от точки до полигона. Но библиотечная функция, не хочет работать с клеткой. Компилятор выдает что-то на эльфийском. Шутка. Короче мне не помог вывод компилятора.
Есть ли способ сделать из клетки полигон, понятный boost'у?

Диаграмма вороного построена на vpoints. Программа должна считать расстояние от qpoints до соответствующих клеток вороного.
Вот мой код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <iostream>
#include <vector>
 
#include <boost/geometry.hpp>
#include <boost/geometry/geometries/polygon.hpp>
#include <boost/polygon/voronoi.hpp>
namespace bg = boost::geometry;
 
using boost::polygon::voronoi_diagram;
typedef voronoi_diagram<double>::cell_type cell_type;
typedef voronoi_diagram<double>::edge_type edge_type;
typedef voronoi_diagram<double>::vertex_type vertex_type;
typedef boost::polygon::point_data<double> point_type;
 
using namespace std;
 
int main() {
 
  vector< point_type > vpoints;
  vpoints.push_back(point_type(0.0, 0.0));
  vpoints.push_back(point_type(0.0, 4.0));
  vpoints.push_back(point_type(4.0, 4.0));
  vpoints.push_back(point_type(4.0, 0.0));
  vpoints.push_back(point_type(2.0, 2.0));
 
  vector< point_type > qpoints;
  qpoints.push_back(point_type(0.0, 0.0));
  qpoints.push_back(point_type(0.0, 2.0));
  qpoints.push_back(point_type(3.0, 3.0));
  qpoints.push_back(point_type(5.0, 5.0));
  qpoints.push_back(point_type(5.0, 5.0));
 
  voronoi_diagram<double> vd;
  construct_voronoi(vpoints.begin(), vpoints.end(), &vd);
 
  for (int i = 0; i < qpoints.size(); i++) {
    for (voronoi_diagram<double>::const_cell_iterator it = vd.cells().begin();
         it != vd.cells().end(); ++it) {
      if (i == it->source_index()) {
        cout << "v[i]=(" << vpoints[i].x() << "," << vpoints[i].y() << ")\t";
        cout << "q[i]=(" << qpoints[i].x() << "," << qpoints[i].y() << ")\t";
        cout << "Distance=";
        cout << bg::distance(qpoints[i], *it) << endl;
        cout << endl;
        break;
      }
    }
  }
 
  return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2014, 03:57
Ответы с готовыми решениями:

Диаграмма Вороного:функция матлаба voronoin неправильно рисует ячейки вороного вокруг заданных точек
А никто не сталкивался с проблемой того, что функция матлаба voronoin неправильно рисует ячейки...

Вывести в файл описания всех клеток, целиком лежащих внутри круга, в порядке возрастания расстояния от клетки до центра
Пытался по разному подходить к решению этой задачи, но в итоге все без толку. Условие полностью:...

Определение расстояния от точки до плоскости
Определить расстояние от точки А до заданной плоскости, помогите пожалуйста сделать, мне еще...

Отсортировать точки по во возрастанию расстояния
Здравствуйте, написал программу для вывода минимально точки, а вот как сделать чтобы она их...

Найти расстояния от точки до прямых
Описать процедуру Dist(Px,Py,Ax,Ay,Bx,By,D), находящую расстояние*D от точки*P до прямой*AB по...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.12.2014, 03:57

Вычисление расстояния от точки до прямой в пространстве
Вычисление расстояния от точки до прямой в пространстве

Нахождение кратчайшего расстояния от точки до фигуры
Доброго времени суток! Буду благодарна за помощь в решении данной задачи, ибо у меня ничего не...

Расчет расстояния от одной точки до другой
Вообщем захотелось реализовать расчет расстояния по такому...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru