PHP SVG как найти точки пересечения кривых. Часть 3
Пример программного построения выкройки фартука, но прежде о кривых Безье.
Эта статья продолжение двух тем:
Сегодня научимся решать задачи аналитической геометрии связанные с кривыми:
Задача 1. Найти пересечение квадратичной кривой Безье и прямой
Задача 2. Найти пересечение кубической кривой Безье и прямой
Задача 3. Найти пересечение квадратичной кривой Безье и окружности
Задача 4. Найти пересечение кубической кривой Безье и окружности
Задача 5. Найти длину квадратичной кривой Безье
Задача 6. Найти длину кубической кривой Безье
Для облегчения будем использовать ряд готовых функций (библиотеку gfp.php). Скачать архив с библиотекой и примерами.
Как найти точки пересечения квадратичной кривой Безье с прямой
Функция Intersection_Bezier2Line() возвращает массив со значениями координат пересечения кривой и отрезком.
Пример:
$F_Array=Intersection_Bezier2Line($xP0,$yP0,$xP1,$yP1,$xP2,$yP3, $xA0,$yA0,$xA1,$yA1);
$xQ0=$F_Array[0];
$yQ0=$F_Array[1];
$xQ1=$F_Array[2];
$yQ1=$F_Array[3];
Online пример:
Как найти точки пересечения кубической кривой Безье с прямой
Функция Intersection_Bezier3Line() возвращает массив со значениями координат пересечения кривой и отрезком.
Пример:
$F_Array=Intersection_Bezier3Line($xP0,$yP0,$xP1,$yP1,$xP2,$yP2, $xP3,$yP3,$xA0,$yA0,$xA1,$yA1);
$xQ0=$F_Array[0];
$yQ0=$F_Array[1];
$xQ1=$F_Array[2];
$yQ1=$F_Array[3];
Online пример:
Как найти точки пересечения квадратичной кривой Безье и окружности
Функция Intersection_Bezier2Circle() возвращает массив со значениями координат пересечения кривой и отрезком.
Пример:
$F_Array=Intersection_Bezier2Circle($xP0,$yP0,$xP1,$yP1,$xP2,$yP2, $xC1,$yC1, $R);
$xQ0=$F_Array[0];
$yQ0=$F_Array[1];
$xQ1=$F_Array[2];
$yQ1=$F_Array[3];
Online пример:
Как найти точки пересечения кубической кривой Безье и окружности
Функция Intersection_Bezier3Circle() возвращает массив со значениями координат пересечения кривой и отрезком.
Пример:
$F_Array=Intersection_Bezier3Circle($xP0,$yP0,$xP1,$yP1,$xP2,$yP2,$xP3,$yP3, $xC1,$yC1, $R);
$xQ0=$F_Array[0];
$yQ0=$F_Array[1];
$xQ1=$F_Array[2];
$yQ1=$F_Array[3];
Online пример:
Как найти длину квадратичной кривой Безье
Функция length_Bezier2() возвращает значение длины кубической кривой Безье.
Пример:
$L=length_Bezier2($xP0,$yP0, $xP1,$yP1, $xP2,$yP2);
Online пример:
Как найти длину кубической кривой Безье
Функция length_Bezier3() возвращает значение длины кубической кривой Безье.
Пример:
$L=length_Bezier3($xP0,$yP0, $xP1,$yP1, $xP2,$yP2, $xP3,$yP3);
Online пример:
Данные примеры PHP кода вы можете использовать для построения чертежей в формате SVG или разработки выкроек одежды. Бесплатные выкройки на “Портном блоге” реализованы с помощью описанных выше скриптов PHP.