Задача с графиком
|
|
ViRuS | Дата: Вторник, 25.11.2008, 04:34 | Сообщение # 1 |
Старый знакомый
Группа: Пользователи
Сообщений: 42
Статус: Offline
| Помогите плиз:
|
|
| |
Alexander | Дата: Вторник, 25.11.2008, 04:42 | Сообщение # 2 |
Всевышний
Группа: Модераторы
Сообщений: 475
Статус: Offline
| Недавно обсуждался алгоритм точки в треугольнике, здесь 2 треугольника.
Скажем дружно- нафиг нужно!
|
|
| |
ViRuS | Дата: Вторник, 25.11.2008, 06:32 | Сообщение # 3 |
Старый знакомый
Группа: Пользователи
Сообщений: 42
Статус: Offline
| Можешь помочь мне, просто по вариантам надавали и это надо скоро сдавать, плиз!
|
|
| |
Seqular | Дата: Вторник, 25.11.2008, 06:48 | Сообщение # 4 |
Хранитель
Группа: Администраторы
Сообщений: 859
Статус: Offline
| ViRuS, поищи алгоритм принадлежности точки треугольнику на форуме. Ну и представь, что у тебя 2 их. Соответственно тебе нужно взять t-конорму.
Поддерживаю также проект сообщество молодых сисадминов
|
|
| |
ViRuS | Дата: Вторник, 25.11.2008, 06:53 | Сообщение # 5 |
Старый знакомый
Группа: Пользователи
Сообщений: 42
Статус: Offline
| Quote (Seqular) Соответственно тебе нужно взять t-конорму. конорму --а что это ?
|
|
| |
Seqular | Дата: Вторник, 25.11.2008, 07:22 | Сообщение # 6 |
Хранитель
Группа: Администраторы
Сообщений: 859
Статус: Offline
| ViRuS, Ну для проверки на принадлежность к одному и к другому, нужно использовать оператор OR, т.е. сумму. По другому я ее назвал конормой.
Поддерживаю также проект сообщество молодых сисадминов
|
|
| |
ViRuS | Дата: Среда, 26.11.2008, 06:28 | Сообщение # 7 |
Старый знакомый
Группа: Пользователи
Сообщений: 42
Статус: Offline
| Seqular, а, ясно Добавлено (25.11.2008, 23:27) ---------------------------------------------
Quote (Alexander) Недавно обсуждался алгоритм точки в треугольнике, здесь 2 треугольника. Полистал форум чёт такой темы не нарыл, мож ты помнишь где она, можешь ссылкой поделиться? Добавлено (25.11.2008, 23:28) --------------------------------------------- Alexander, а вот, вы наверное про ЭТУ ТЕМУ имели ввиду?
|
|
| |
Alexander | Дата: Среда, 26.11.2008, 09:04 | Сообщение # 8 |
Всевышний
Группа: Модераторы
Сообщений: 475
Статус: Offline
| да
Скажем дружно- нафиг нужно!
|
|
| |
ViRuS | Дата: Четверг, 27.11.2008, 04:32 | Сообщение # 9 |
Старый знакомый
Группа: Пользователи
Сообщений: 42
Статус: Offline
| Ребят гляньте на правильность работы проги: Code Program number2; var x,y,y1 : real; begin write ('Введите x: '); readln (x); write ('Введите y: '); readln (y); if (x>=-2) and (x<1) then if ((y>=(x-1)/3) and (y<=1)) then if (x<=-1) and (y<=(2*x+3)) or ((x>-1) and (x<0) and (y<=abs(x))) or (x>=0) and (y<=0) then y1:=1; if y1=1 then writeln ('’Точка попадает в заданную область.')
else writeln ('’Точка не попадает в заданную область.'); readln; end.
|
|
| |
Alexander | Дата: Пятница, 28.11.2008, 01:14 | Сообщение # 10 |
Всевышний
Группа: Модераторы
Сообщений: 475
Статус: Offline
| условия нема.
Скажем дружно- нафиг нужно!
|
|
| |
ViRuS | Дата: Пятница, 28.11.2008, 05:07 | Сообщение # 11 |
Старый знакомый
Группа: Пользователи
Сообщений: 42
Статус: Offline
| Alexander, сделал условие, смотри
|
|
| |
Alexander | Дата: Пятница, 28.11.2008, 05:29 | Сообщение # 12 |
Всевышний
Группа: Модераторы
Сообщений: 475
Статус: Offline
| не, тогда надо так: Code if y>0 then проверяем попадает ли в верхний треугольник else if y<0 then проверяем попадает ли в нижний треугольник else if (x>-1.5) and (x<0) then ...
Скажем дружно- нафиг нужно!
Сообщение отредактировал Alexander - Пятница, 28.11.2008, 05:44 |
|
| |
ViRuS | Дата: Пятница, 28.11.2008, 05:38 | Сообщение # 13 |
Старый знакомый
Группа: Пользователи
Сообщений: 42
Статус: Offline
| Alexander, это вместо первого условия? Можешь написать подправленную задачу? Вот сделал скрин понагляднее
Сообщение отредактировал ViRuS - Пятница, 28.11.2008, 05:41 |
|
| |
Alexander | Дата: Пятница, 28.11.2008, 05:43 | Сообщение # 14 |
Всевышний
Группа: Модераторы
Сообщений: 475
Статус: Offline
| Quote (ViRuS) Можешь написать подправленную задачу? пока её не подправлять, а заново писать надо. А между прочим в той теме Van_der_Vlaad написал полный алгоритм определяющий попадание точки в треугольник, только скобки забыл.
Скажем дружно- нафиг нужно!
|
|
| |
ViRuS | Дата: Пятница, 28.11.2008, 21:53 | Сообщение # 15 |
Старый знакомый
Группа: Пользователи
Сообщений: 42
Статус: Offline
| Alexander, Code Begin Var x,y,x1,y1,x2,y2,x3,y3,s1,s2,s3:real; begin
readln(x,y); {вводим координаты точки} readln(x1,y1); readln(x2,y2); {вводим координаты вершин треугольника} readln(x3,y3); s1:=(y2-y1)*(x-x1)-(x2-x1)*(y-y1); s2:=(y3-y2)*(x-x2)-(x3-x2)*(y-y2); {три выражения удвоенных площадей} s3:=(y1-y3)*(x-x3)-(x1-x3)*(y-y3); if ((s1>0) and (s2>0) and (s3>0)) or ((s1<0) and (s2<0) and (s3<0)) then writeln('принадлежит треугольнику') else writeln('не принадлежит'); end. Мне вот непонятно по той задаче: Code readln(x2,y2); {вводим координаты вершин треугольника} readln(x3,y3); 1) А почему тут вводятся координаты двух вершин? Надо ж трёх, ведь это треугольник. 2) Т.к. у мну два треугольника мне придётся делать как бы условие: if ((x>=-1,5) and (x<=0) and (y>=0)) -это условие будет означать, что точка вверхнем треугольнике if ((x>=-2) and (x<=1) and (y<0)) -а это условие то что точка попадёт в нижний Поправь если не так!
|
|
| |