MpW, я же выше написал, у тебя синтаксическая ошибка
Код без ошибки:
function InterLineLine(x1,y1,x2,y2,a1,b1,a2,b2)
local p = (x2-x1)*(b2-b1)-(y2-y1)*(a2-a1)
local x,y
if ( p == 0 ) then --отрезки параллельны
return false
end
x = ((x2-x1)*(a2-a1)*(y1-b1)+(x2-x1)*(b2-b1)*a1-(y2-y1)*(a2-a1)*x1)/p
y = -((y2-y1)*(b2-b1)*(x1-a1)+(y2-y1)*(a2-a1)*b1-(x2-x1)*(b2-b1)*y1)/p
return x,y
end
function IsPointOnBeam2(x,y,x1,y1,x2,y2)
return ((x-x1)*(y2-y1) == (x2-x1)*(y-y1)) and ((x-x1) * (x2-x1) >= 0) and ((y-y1)*(y2-y1) >= 0)
end
function IsPointInSegment(x,y,x1,y1,x2,y2)
return((x1-x)^2+(y1-y)^2)^0.5 + ((x2-x)^2+(y2-y)^2)^0.5 == ((x2-x1)^2+(y2-y1)^2)^0.5
end
function RayIntersectSegment(rayx,rayy,dirx,diry,x1,y1,x2,y2)
--находим точку пересечения прямых
local x,y=InterLineLine(rayx,rayy,dirx,diry,x1,y1,x2,y2)
if x then
--проверка, что точка пересечения на отрезке, и принадлежит лучу
return IsPointInSegment(x,y,x1,y1,x2,y2)and IsPointOnBeam2(x,y,rayx,rayy,dirx,diry)
else
--иначе, если прямые не пересекаются, то точки пересечения нет.
--если луч и отрезок лежат на одной линии
return IsPointOnBeam2(x1,y1,rayx,rayy,dirx,diry) and IsPointOnBeam2(x2,y2,rayx,rayy,dirx,diry)
end
return false
end
print('p1=1: '..tostring(RayIntersectSegment(0,0,0,1,100,0,-100,0))..' луч направлен вверх, луч пересекает горизонтальный отрезок')
print('p1=0: '..tostring(RayIntersectSegment(0,0,0,1,100,-1,-100,-1))..' луч направлен вверх, луч не пересекает горизонтальный отрезок, расположенный ниже')
MpW, сколько я себе голову сломал. У тебя в примере InterLineLine в самом конце грубая синтаксическая ошибка, конец строки заново открывается, он переставал считать это Lua
Ред. ScorpioT1000
» Администрация XGM / Этикетка ломает ссылку
» ВалактерисМод / Революционные партизаны
» Администрация XGM / Абилки на мобилке
» WarCraft 3 / Проблема с анимацией моделей из игры Sonic Heroes
» WarCraft 3 / Программа для конвертации jass кода в lua
» Администрация XGM / Выбор редакции
Ред. ScorpioT1000
» Администрация XGM / Нарушена подсветка lua
» Администрация XGM / Странное поведение при редактировании пользователем вопроса
» Администрация XGM / Основы форматирования текста
» Администрация XGM / Ответ в ЛС после смены ника
Ред. ScorpioT1000
» Администрация XGM / Нарушена подсветка lua
Ред. ScorpioT1000
» Администрация XGM / Нарушена подсветка lua
Ред. ScorpioT1000
» Администрация XGM / Основы форматирования текста
Heading level 1
Heading level 2
Heading level 3
Heading level 4
Heading level 5
Heading level 6
Ред. ScorpioT1000
» Администрация XGM / Ссылки
» Администрация XGM / Обновить txt2 до поддержки markdown
» Администрация XGM / Ресурсы перенесли, а занимаемое место не изменилось
» Администрация XGM / Ошибка HTTP ERROR 500
» Администрация XGM / Ошибка HTTP ERROR 500
» Администрация XGM / Ремонт способностей
» Администрация XGM / Серийность и навигация
» Администрация XGM / Предложение: Чекбокс для автоматической установки логотипа блога
» Администрация XGM / Непрочитанные комментарии
» Администрация XGM / Нет пункта меню ресурсы
» Администрация XGM / Редактирование коммента
» Администрация XGM / Инфа о репосте