Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
1 / 1 / 0
Регистрация: 30.05.2012
Сообщений: 22
1

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

12.09.2012, 15:32. Показов 3135. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
А никто не сталкивался с проблемой того, что функция матлаба voronoin неправильно рисует ячейки вороного вокруг заданных точек? Как это можно поправить?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.09.2012, 15:32
Ответы с готовыми решениями:

Треангуляция Делоне и сетка Вороного
Всем привет, мне необходимо написать программку триангуляции Делоне , а затем и постороения сетки...

Создание анимации эволюции диаграммы Вороного
помогите разобраться, что не так. Задача: изначально есть 10 файлов с координатами точек в...

Создание диаграмм Вороного на ограниченной прямоугольной области
Привет, форумчане! Собственно вопрос выражен в заголовке темы, добавлю лишь несколько...

Диаграмма Вороного в 3D
Здравствуйте. Необходимо построить диаграмму вороного в 3D. Ничего не могу найти по такой,...

3
5242 / 3570 / 379
Регистрация: 02.04.2012
Сообщений: 6,473
Записей в блоге: 17
12.09.2012, 18:22 2
Врядли я смогу помочь, но не могли бы Вы выложить наброски программы?

Добавлено через 8 минут
Дело возможно в особенностях реализации данной ф-ции в матлабе, так например ф-ция ошибок erf() отличается от приведенной в литературе, также и ф-ция std(), имеет параметр в зависимости от которого она возвращает либо среднеквадратическое отклонение, либо стандартное отклоненит. Возможно нечто подобное и с ф-цией voronoin - нужно вдумчиво "покурить" хелп данной ф-ции.
P.S. Еще сталкивался с ситуацией, когда при каждом запуске программы результат апроксимации отличался, порой сильно.
2
1 / 1 / 0
Регистрация: 30.05.2012
Сообщений: 22
13.09.2012, 08:44  [ТС] 3
программа довольно громоздкая и чтобы ее запустить - нужно много исходного материала. А по сути - у меня есть очень много текстовичков (порядка 2000) в которых записаны вде колонки - координаты x y точек, и я для каждого из файлов рисую диаграмму вороного, закрашивая ячейки в зависимости от ее количества ребер. И в конце свожу все картинки в анимацию. Так вот ощущение, что сетка (диаграммы вороного) стоит, почти не меняясь, количество ребер остается часто тем же, а цвета меняются довольно сильно... код верный - много раз был перепроверен на более простых задачках. А т.к. точки - это координаты реального физического эксперимента, то исходя из физических соображений анимация тоже показывает бред.((((
В связи с этим и вопрос - может Вы копались в самом коде voronoin.m - ибо я там голову сломала( а help уже "курила" долго, из него уже ничего полезного не выжать(
0
5242 / 3570 / 379
Регистрация: 02.04.2012
Сообщений: 6,473
Записей в блоге: 17
13.09.2012, 15:42 4
Как не удивительно у меня вышло построить сетку для случайного вектора.
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
clear;
clc;
clf;
 
x = randn(30,2); 
 
[v,c]=voronoin(x); 
for i = 1:length(c) 
    if all(c{i}~=1)  
        color = length(c{i}); % цвет равен кол-ву ребер
        clr = num2str(color);
        hold on
        patch(v(c{i},1),v(c{i},2),color); % сетка с заливкой
        plot(x(i,1),x(i,2),'.r'); % точки
        text(x(i,1),x(i,2),clr) %подписыываем кол-во ребер в ячейке
    end
      
end
axis equal
Почему эта конструкция неверно работает с массивом файлов - не знаю... возможно в памяти какой-то мусор (нужно очищать) или просто глюки матлаба.
Впервые столкнулся с диаграммой Вороного, поэтому в самом коде voronoin.m я не разобрался, однако там в строке 91 идет обращение к ф-ции qhullmx.m:
91 [v, c] = qhullmx(x', 'v ', opt);
которая собственно и возвращает результат (а остальное - в основном проверки на "вшивость"). Взглянув вовнутрь меня поразило отсутствие содержимого - там только комментарии и возврат при ошибке, однако в той же папке D:\MATLAB701\toolbox\matlab\polyfun\private\ лежит файлы qhullmx.dll и qhullmx.csf, которые вероятно и реализуют алгоритм построения сетки. Возможно вам поможет информация по этой ф-ции на сайте http://www.qhull.org/
Миниатюры
Диаграмма Вороного:функция матлаба voronoin неправильно рисует ячейки вороного вокруг заданных точек  
3
13.09.2012, 15:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.09.2012, 15:42
Помогаю со студенческими работами здесь

Диаграмма Вороного
Здравствуйте! Пытаюсь запустить программу по примеру в SWI-Prolog 6.4.1, но появляются ошибки:...

диаграмма вороного
Поскажите, с java не знаком, данный код брут-алгоритма диаграммы вороного import java.awt.Color; ...

Найти аналитически (в явном виде или параметрически) границы клеток Вороного для точечных множеств
Найдите аналитически (в явном виде или параметрически) границы клеток Вороного для ...

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru