LINUX.ORG.RU

Сортировка точек

 ,


0

1

Есть массив точек, содержащих координаты на плоскости (x, y). Все множество точек принадлежит граням геометрической фигуры, т.е. они очерчивают некую замкнутую область. Фигура может быть произвольной и неправильной формы.

Проблема заключается в том, что точки в массиве идут несортированными, в произвольном порядке. А нужно их отсортировать в той последовательности, в какой они очерчивают замкнутую область (по периметру), т.е. как я это вижу, то точки, находящиеся рядом в двумерном пространстве, должны быть рядом и в массиве.

Может быть кто подскажет, как их отсортировать?

Ответ на: комментарий от gag

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

#!/bin/sh
if [ "$1" = "" ]; then
	echo "usage: $0 <latex string without \$s>"
	exit
fi
[ "$2" != "" ] && pngname="$2" || pngname="out.png"
mask=tmp_$$
texfile=${mask}.tex
cat > $texfile << EOF
\documentclass[12pt]{article}
\usepackage[english, russian]{babel}
\usepackage[koi8-r]{inputenc}
\usepackage[matrix,arrow,curve]{xy}
\usepackage[intlimits]{amsmath}
\usepackage{amsfonts}
\pagestyle{empty}
\setbox0=\hbox{$\displaystyle
EOF

echo "$1" >> $texfile

cat >> $texfile << EOF
$}
\textwidth=\wd0
\textheight=\ht0
\advance\textwidth by 2em
\advance\textheight by 2\dp0
\topmargin=-1.5cm
\oddsidemargin=-1cm
\begin{document}
\vbox{\vss\hbox{\hss\copy0\hss}\vss}
\end{document}
EOF

latex $texfile
dvipng -D 600 ${mask}.dvi -o $pngname
rm -f ${mask}*

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