Задача: Необходимо доработать алгоритм марширующих квадратов таким образом, чтобы соседние сегменты линий соединялись последовательно. Это нужно для правильного отображения типа линии на графике (solid. dash, ...).
Описание: Плагин X-Y Plot Region к математической программе SMath Studio. Исходники можно найти на сайте программы по ссылке: https://en.smath.com/forum/yaf_postst1774_X-Y-Plot-Region.aspx (см. svn sources).
Пример построения неявной кривой в программе приложен.
Текущий порядок сегментов линий зависит от последовательности сканирования заданной области определения функции (см. описание алгоритма марширующих квадратов и вторую приложенную картинку).
Доработать функцию ImplicitPlot2d() в файле XYPlot.cs. Можно выделить её в отдельную программу.
Результатом работы должен быть список массивов точек List{PointD[]}. В случае с примером приложенной функции (x^2+y^2-(sin(5*(x+y)))^2-(cos(4*(x-y)))^2) должно получиться 15 отдельных полилиний в области определения: x = (-1.5, 1.5), y = (-1.5, 1.5). В полилинии не должно быть разрывов, каждая должна состоять только из последовательных сегментов алгоритма марширующих квадратов, в порядке их следования вдоль кривой на графике.
Примечания: В качестве подсказки могу посоветовать привязать текущие найденные отрезки к конкретной ячейке (квадрату) и перебрать каждую соседнюю, помечая. В случае коллизии (кривая может самопересекаться) - либо объединять получающиеся наборы, либо добавлять общие сегменты в соседние наборы.
Дам любые пояснения по работе функции. Её работу также можно посмотреть под отладчиком в реально работающем приложении.
Стало известно, куда неожиданно и массово устремились российские туристы на майские: это оказался вовсе не обычный курорт, а работающий по специальному закону
«585*ЗОЛОТОЙ» назвала топ-10 самых популярных драгоценных камней в России
Фестивальный праздник «Музыка моего города» в Улан-Удэ включил в программу спектакль Театра кукол «Ульгэр»: Россия и Культура, Праздник и Дети
Инсайдер Карпов: "Спартак" выкупил Станковича у "Ференцвароша" за €200 тыс
Футболисты «Локомотива» – в расширенном составе сборной России на июньский сбор
ЦСКА в Петербурге обыграл "Зенит" и повел 1/2 финала Единой Лиги ВТБ
В Москве пройдет заплыв «Кубок Чемпионов» от организаторов Swimcup. В старте, который пройдет в гребном канале «Москва», примут участие более 1000 пловцов