Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Определение отрезков прямых, расположенных в области

Читайте также:
  1. C)В области среднего носового хода и располагается выше ее дна
  2. III. Определение размера единовременной социальной выплаты
  3. III. Социальные гарантии в области профессиональной ориентации
  4. IV. Определение массы груза, опломбирование транспортных средств и контейнеров
  5. А) Холецистоэктомия. Холедохолитотомия. Дренирование холедоха и подпеченочной области.
  6. Автоматизированные информационные системы в области права.
  7. Автомобильный: По территории Одесской области проходят: автомагистраль E 58; автомагистраль E 87; автомагистраль E 95.

 

Если отрезок не имеет точек пересечения с линиями границы области, но одна его точка находится внутри области, то он расположен внутри области. Такой отрезок следует записать в файл отрезков внутри области.

Если отрезок имеет точки пересечения с линиями границы области, то часть его расположена внутри области. Чтобы выделить эту часть отрезка, определим в любой последовательности точки пересечения S1, S2 и запишем вместе с линиями области в файл с сортировкой строк файла по возрастанию L, где L- расстояние от начальной точки отрезка до точки пересечения.

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

 

Procedure Box_Otr; {оператор записи отрезка прямой в текущий файл}

var P, Ps:byte;

begin

Ps:=0; {счетчик записей точек пересечения}

Repeat

Читаем файл линий границ выделенной области с 1-ой строки:

SledLine(g, 1, Nag, Xg1, Yg1, Xg2, Yg2, XCg, YCg),

TekUgol(Xg1, Yg1, Xg2, Yg2,Ug);

Определяем точку пересечения отрезка прямой чертежа (Xm1,Ym1,Xm2,Ym2) с линией области:

DwaOtr(Xm1, Ym1,Um, Xg1, Yg1,Ug,XP,YP,P);

Проверка на принадлежность точки пересечения XP,YP отрезку линии чертежа:

if P=1 then PikOtr(XP,YP,Xm1,Ym1,Xm2,Ym2,P);

Проверка на принадлежность точки пересечения XP,YP отрезку линии выделенной области:

if P=1 then PikOtr(XP,YP,Xg1,Yg1,Xg2,Yg2,P);

if P=1 then begin

Ps:=Ps+1; {наличие точки пересечения}

Xs:=XP; Ys:=YP; {координаты точки пересечения}

DlinaL(Xm1,Ym1,Xs,Ys,L); {расстояние от начала отрезка до точки пересечения}

if L>0 then

Запись в текущий файл e с сортировкой строк по возрастанию L:

StrokBox(e, Ps, L>, Xg1, Yg1, Xg2, Yg2, Xs, Ys);

end;

Until E=Nkg; {номер последней строки в файле}

if Ps=0 then begin

Проверка на принадлежность начальной точки отрезка Xm1,Ym1 выделенной области:

Tch_Obl(Xm1,Ym1,X1,Y1,X2,Y2,P);

if P=1 then

Отрезок расположен внутри области и его следует записать в файл o:

RisLineBox(o, 1, Nao, Xm1, Ym1, Xm2, Ym2, XCm, YCm);

end;

Если есть точки пересечения, то необходимо выделить те участки, которые расположены внутри области (Procedure FiltrOtr)

if Ps>0 then FiltrOtr;

end;

 


Дата добавления: 2015-08-09; просмотров: 65 | Нарушение авторских прав


Читайте в этой же книге: Длина отрезка и текущий угол. | Взаимное положение отрезков. | Точки пересечения прямой и дуги. | Пересечение дуг. | Направление дуги. | Произвольный контур |
<== предыдущая страница | следующая страница ==>
Взаимное положение линий чертежа.| Определение дуг, расположенных в области

mybiblioteka.su - 2015-2024 год. (0.006 сек.)