안녕하세요 점이 프롤로그를 사용하여 사각형에 있는지 확인하려고합니다. 여기서 (ULX, ULY)는 직사각형의 왼쪽 위 지점이고 (LRX, LRY)는 직사각형의 오른쪽 아래 지점이며 (X, Y)는 모양에 있는지 확인하기 위해 사용하는 지점입니다.점이 사각형에 있는지 찾기
나는이 시도하지만 오류지고 유지 (= =/2 : 인수가 충분히 인스턴스화되지 않음)
on(point2d(X,Y), rectangle(point2d(ULX, ULY), point2d(LRX, LRY))):-
URX is LRX,
URY is ULY,
LLX is ULX,
LLY is LRY,
%Checks if point is in area 1
(Y =:= ULY,
X > ULX,
X < URX)
;
%OR Checks if point is in area 2
(X =:= URX,
Y < URY,
Y > LRY)
;
%OR Checks if point is in area 4
(X =:= ULX,
Y < ULY,
Y > LLY)
;
%OR Checks if point is in area 3
(Y =:= LLY,
X > LLX,
X < LRX)
;
(X =:= ULX,
Y =:= ULY)
;
(X =:= URX,
Y =:= URY)
;
(X =:= LLX,
Y =:= LLY)
;
X =:= LRX,
Y =:= LRY.
그래서 내가 피곤 경우로 구분 할 수 있습니다. 그러나 점이 직사각형에 있으면 참 값 뒤에 false가옵니다. 거짓이라면 나는 단지 하나의 잘못된 값을 얻습니다. 어떤 도움이라도 대단히 감사합니다. 고맙습니다.
%Checks if point is in area 1
on(point2d(X,Y), rectangle(point2d(ULX, ULY), point2d(LRX, _))):-
URX is LRX,
%URY is ULY,
%LLX is ULX,
%LLY is LRY,
Y =:= ULY,
X > ULX,
X < URX.
%OR Checks if point is in area 2
on(point2d(X,Y), rectangle(point2d(_, ULY), point2d(LRX, LRY))):-
URX is LRX,
URY is ULY,
%LLX is ULX,
%LLY is LRY,
X =:= URX,
Y < URY,
Y > LRY.
%OR Checks if point is in area 4
on(point2d(X,Y), rectangle(point2d(ULX, ULY), point2d(_, LRY))):-
%URX is LRX,
%URY is ULY,
%LLX is ULX,
LLY is LRY,
X =:= ULX,
Y < ULY,
Y > LLY.
%OR Checks if point is in area 3
on(point2d(X,Y), rectangle(point2d(ULX, _), point2d(LRX, LRY))):-
%URX is LRX,
%URY is ULY,
LLX is ULX,
LLY is LRY,
Y =:= LLY,
X > LLX,
X < LRX.
on(point2d(X,Y), rectangle(point2d(ULX, ULY), point2d(_, _))):-
% URX is LRX,
%URY is ULY,
%LLX is ULX,
%LLY is LRY,
X =:= ULX,
Y =:= ULY.
on(point2d(X,Y), rectangle(point2d(_, ULY), point2d(LRX, _))):-
URX is LRX,
URY is ULY,
%LLX is ULX,
%LLY is LRY,
X =:= URX,
Y =:= URY.
on(point2d(X,Y), rectangle(point2d(ULX, _), point2d(_, LRY))):-
%URX is LRX,
%URY is ULY,
LLX is ULX,
LLY is LRY,
X =:= LLX,
Y =:= LLY.
on(point2d(X,Y), rectangle(point2d(_, _), point2d(LRX, LRY))):-
% URX is LRX,
% URY is ULY,
% LLX is ULX,
%LLY is LRY,
X =:= LRX,
Y =:= LRY.
안녕하세요 @ DanielLyons 대단히 감사합니다. 사각형에 위의 점과 길이 만있는 경우 점이 사각형에 있는지 알아내는 데 도움을 줄 수 있습니까? on (point2d (X, Y), square (point2d (ULX, ULY), L))과 같이. 고맙습니다 – HGI