我有2个坐标,需要绘制一个矩形。我遇到的问题是,有时坐标是右上角左下角。当我使用这些协调时,它会绘制一个“镜像”矩形。我如何知道何时获得右上角和左下角坐标,然后如何“翻转”这些坐标以在正确的位置绘制矩形? 第一个例子是当我得到从右上角开始并向右下方的坐标时。第二个例子是当我得到从左上角和右下角开始的坐标时。
___________
/| |
/ | |
/ | |
/ |__________|
______
|\ |
| \ |
| \ |
|____\|
答案 0 :(得分:2)
最简单的方法是将坐标分成单独的x和y值,代表矩形的每一行,然后将它们放回到表示角落的新点中。
伪代码:
function normalise(p1, p2):
let x1 = p1.x
let x2 = p2.x
let y1 = p1.y
let y2 = p2.y
let topLeft = Point(min(x1, x2), min(y1, y2))
let bottomRight = Point(max(x1, x2), max(y1, y2))
return (topLeft, bottomRight)
此伪代码假定(0,0)是绘图区域的左上角(在2D计算机图形中很常见)。
答案 1 :(得分:0)
这里的建议意味着您不必担心这一点。
如果您的积分是(x1, y1)
和(x2, y2)
,则无论您是否提供了左上角和右下角,以下几点都位于矩形的角落,或者右上角和左下角:
(max(x1, x2), max(y1, y2))
(max(x1, x2), min(y1, y2))
(min(x1, x2), max(y1, y2))
(min(x1, x2), min(y1, y2))