저는 응용 프로그램에 대해 4 포인트 이미지 변환 작업을하고 있습니다. 사용자는 각 구석을 드래그하여 유효한 사변형을 만들거나 "경계 상자"를 사용하여 세로, 가로 및 비례로 크기를 조정할 수 있습니다.4 포인트 이미지 변환에 대한 제한 사항 적용
지금까지 이미지 변환 부분이 작동했습니다. 그러나, 나는 그것에 한계를 부과하는 힘든 시간을 보내고있다. 그래서 ...
- 버텍스는 서로 교차하지 않는다. 다른 말로하면 사용자가 모래 시계 모양을 만들 수 있도록 허용하지 않습니다. 항상 사변형이어야합니다.
- 마찬가지로 각 모서리 사이의 각도는 0보다 커야합니다. 그렇지 않으면 정점이 한 줄로 끝납니다.
- 이 이미지의 최소 크기입니다. 즉, 각 모서리는 서로 일정 거리 떨어져 있어야하며, 반대편 선이 있어야합니다.
- 사용자는 이미지를 뒷면으로 "뒤집을"수 없습니다. 4 개의 모서리 (p1, p2, p3 및 p4)는 시계 방향으로 나타나야합니다.
- 불규칙한 연 모양과 삼각형이 유효합니다.
이러한 문제와 관련된 수식이나 논문이 있는지 궁금합니다. 나는 현재 2 개의 선분이 교차하고 (그리고 어디서), 또 다른 점에 선상에서 가장 가까운 점을 찾는 지 찾기위한 공식을 가지고있다. 내가 구현 한 대부분의 구현은 내가 좋아하는 것처럼 사용자 친화적이지 않았습니다. 제한을 부과 할 때 구석이 뛰어 넘기 때문입니다.
P. DirectX를 사용하여이 프로젝트에 C#을 사용하고 있습니다. 그러나 응용 프로그램은 2D뿐입니다.
나는 당신의 제안을 좋아하지만,이 응용 프로그램은 사용자가 직접 이미지를 변경할 수 있도록되어 있습니다. 변환을 표시하기 위해 와이어 프레임을 사용하지 않으며 조작 된 이미지에 사용자 실수를 표시 할 수 없습니다. 이상적인 것은 아니지만 마우스 움직임을 트래핑하는 것은 이러한 요구 사항 내에서 차선책으로 보입니다. – Japtar
변환이 유효하지 않은 경우 채워진 빨간색 다각형을 그리는 것이 더 좋을 것이라고 생각하지만 UI 대안을 선택해야만 할 경우 어떻게 할 것인가에 대한 대답을 편집했습니다. 키포인트 편집 중에 항상 변형을 적용하면 수식에 대해 유효 할 수있는 변형이 배제됩니다 (예 : 뒤집기 중 하나에서 뒤집기로 변환하기 때문에 단 하나를 위해 통과해야하고 강제 UI는 그것을 허용하지 않을 것이다). – 6502
저는이 문제와 관련하여 상사와 동료들과 이야기했습니다. 그들은 당신의 첫 번째 아이디어를 받아 들였으므로이 문제를 해결하십시오 :). – Japtar