Соединительные точки в Математике - PullRequest
5 голосов
/ 27 ноября 2009

У меня есть коллекция точек, отображаемых на графике:

альтернативный текст http://img69.imageshack.us/img69/874/plc1k1lrqynuyshgrdegvfy.jpg

Я хотел бы знать, есть ли какая-нибудь команда, которая автоматически соединит их вдоль осей xx и yy. Это можно лучше понять, глядя на следующую картину: альтернативный текст http://img341.imageshack.us/img341/5926/tr53exnkpeofcuiw40koyks.jpg (Я не спрашиваю, как реализовать алгоритм сам!).

Спасибо

Ответы [ 3 ]

4 голосов
/ 30 ноября 2009

Я голосую за предложение dreeves . Он не использует «встроенную» функцию, но это однострочный, использующий функциональное программирование и спецификации уровня. Реализация:

gridify[pts : {{_?NumericQ, _?NumericQ} ...}] :=
  Map[Line, GatherBy[pts, #]& /@ {First, Last}, {2}]
4 голосов
/ 29 ноября 2009

Я подозреваю, что ответ - нет, такой команды нет. Было бы интересно написать что-нибудь для этого, то есть, учитывая список точек, вывести соответствующие строки. Я полагаю, что это просто вопрос:

Для каждой уникальной x-координаты получите список y-координат для точек с этой x-координатой и проведите линию от min до max y-координаты. Затем повторите для y-координат.

Если вы сделаете это, было бы интересно опубликовать это здесь в качестве продолжения. Или, если вы хотите задать этот вопрос, я уверен, что вы получите хорошие решения.

2 голосов
/ 29 ноября 2009

Часть того, что вы ищете, находится в ComputationalGeometry пакете . В частности, ConvexHull даст вам внешние точки, перечисленные в направлении против часовой стрелки. В этот момент вы можете использовать Line, чтобы соединить их вместе. Внутренние пути немного сложнее, и я не думаю, что есть точное совпадение. Но, DelaunayTriangulation подходит ближе всего. Это существенно разбивает ваш список точек на наборы треугольников. Однако я не знаю встроенной функции, которая разбивала бы ее на прямоугольники.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...