📄 coords.h
字号:
/*
This file is part of SWAIN (http://sourceforge.net/projects/swain).
Copyright (C) 2006 Daniel Lindstr鰉 and Daniel Nilsson
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#pragma once
#include "math.h"
struct FPOINT {
float x;
float y;
};
struct FRECT {
float left;
float top;
float right;
float bottom;
};
inline bool intersectsFRECT(FRECT *r1, FRECT *r2) {
return r1->bottom > r2->top && r1->top < r2->bottom
&& r1->left < r2->right && r1->right > r2->left;
}
inline void intersectFRECT(FRECT *dst, FRECT *r1, FRECT *r2) {
dst->left = max(r1->left, r2->left);
dst->top = max(r1->top, r2->top);
dst->right = min(r1->right, r2->right);
dst->bottom = min(r1->bottom, r2->bottom);
}
inline void unionFRECT(FRECT *dst, FRECT *r1, FRECT *r2) {
dst->left = min(r1->left, r2->left);
dst->top = min(r1->top, r2->top);
dst->right = max(r1->right, r2->right);
dst->bottom = max(r1->bottom, r2->bottom);
}
inline void addPoint2Bound(FPOINT *p, FRECT *rect) {
rect->left = min(rect->left, p->x);
rect->right = max(rect->right, p->x);
rect->top = min(rect->top, p->y);
rect->bottom = max(rect->bottom, p->y);
}
inline double distance(POINT *p1, POINT *p2) {
double dx = p2->x - p1->x;
double dy = p2->y - p1->y;
return sqrt(dx*dx + dy*dy);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -