Валисий
Дата: 29.05.2014 00:49:24
Всем здравствуйте!
Столкнулся со следующей проблемой: я построил график системы линейных неравенств. Мне нужно залить, допустим, красным цветом область, ограниченную прямыми и содержащую точку (0;0). График рисую сам (не chart). Подскажите, пожалуйста, как это сделать.
Координаты точек-углов искомой области я не знаю. Суть - заливка области, ограниченной прямыми, каким-то цветом, зная точку в этой области.
Для наглядности - картинка во вложении. Нужно закрасить область, ограниченную синими прямыми и содержащую точку 0,0. Помогите, пожалуйста - может, есть какая-то стандартная функция...
Кифирчик
Дата: 29.05.2014 09:26:45
Валисий,
что-то я сильно сомневаюсь что для такого есть "стандартный" способ.
не стандартных пути видится два:
1) много всяких математических проверок относительно линий, получение точек в этом многоугольнике, и заливка многоугольника. Предположу, это у вас СЛАУ какое-то, и подкрашивается область его схождения. Если оно у вас уже решено, то, как мне кажется, вам должен быть известен этот многоугольник. математически это может быть довольно сложно, но выполняться будет быстро.
2) циклически, попиксельно залить пространство, начиная от 0,0 и ориентируясь на "встречу" с линиями, то есть, на итерации заливать соседний пиксель если он не залит и не является точкой линиии, следующий шаг - проверяем соседние. своего рода "бегущая волна". реализация - простая, но работает сравнительно долго (хотя, если использовать не канву где рисуете, а битмап в памяти, то будет быстрее).