#include <math.h>
/**
* 傾きを算出
*
* @return 傾き
*
* @param point1 座標1
* @param point2 座標2
*
* ↓y1 = a * x1 + b
* ↓y2 = a * x2 + b
* ↓
* ↓y1 - a * x1 = b
* ↓y2 - a * x2 = b
* ↓
* ↓y1 - a * x1 = y2 - a * x2
* ↓a * x2 - a * x1 = y2 - y1
* ↓a * (x2 - x1) = (y2 - y1)
* a = (y2 - y1) / (x2 - x1)
*/
static double calc_a( const POINT& point1, const POINT& point2 )
{
LONG dx = point2.x - point1.x;
LONG dy = point2.y - point1.y;
if( dx == 0 ) return 0.0;
return (double)dy / (double)dx;
}
/**
* 切片を算出
*
* @return 切片
*
* @param point XY座標
* @param a 傾き
*
* ↓y = a * x + b
* ↓y - a * x = b
* b = y - a * x
*/
static double calc_b( const POINT& point, double a )
{
return (double)point.y - (a * (double)point.x);
}
最終更新:2009年04月03日 14:19