旋转
// common.h :
//
/////////////////////////////////////////////////////////////////////////////
#if !defined(AFX_ROTATE_H__73DFDF03_3596_48CE_851E_4BD6D70B5495__INCLUDED_)
#define AFX_ROTATE_H__73DFDF03_3596_48CE_851E_4BD6D70B5495__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
const int LINERANGE = 20;
const double PI = 3.14159265358979323846;
#include "math.h"
#include "framework.h"
inline void rotate(CPoint& beginPos, CPoint& endPos, double dblR)
{
double x = (beginPos.x + endPos.x) / 2.0;
double y = (beginPos.y + endPos.y) / 2.0;
CPoint pos;
pos.x = (long)( (beginPos.x - x) * cos(dblR) - (beginPos.y - y) * sin(dblR) + x);
pos.y = ((long)((beginPos.x - x) * sin(dblR) - (beginPos.y - y) * cos(dblR) + y));
beginPos = pos;
pos.x = ((long)((endPos.x - x) * cos(dblR) - (endPos.y - y) * sin(dblR) + x));
pos.y = ((long)((endPos.x - x) * sin(dblR) - (endPos.y - y) * cos(dblR) + y));
endPos = pos;
}
#endif // !defined(AFX_ROTATE_H__73DFDF03_3596_48CE_851E_4BD6D70B5495__INCLUDED_)
CRgn::PtInRegion
检查 x 和 y 给定的点是否位于对象中存储的区域内 CRgn
。
BOOL PtInRegion(
int x,
int y) const;
BOOL PtInRegion(POINT point) const;
参数
x
指定要测试的点的逻辑 x 坐标。
y
指定要测试的点的逻辑 y 坐标。
情况
点 的 x 和 y 坐标指定了测试值的点的 x 和 y 坐标。 Point 参数可以是结构,也可以是 POINT
CPoint
对象。
返回值
如果点在区域中,则为非零值;否则为0。