Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //расстояние от точки до прямой
- #include <CMATH>
- void getLine(double x1, double y1, double x2, double y2, double &a, double &b, double &c)
- {
- // (x- p1X) / (p2X - p1X) = (y - p1Y) / (p2Y - p1Y)
- a = y2 - y1;
- b = x2 - x1;
- c = x1 * y2 - x2 * y1;
- }
- double dist(double pct1X, double pct1Y, double pct2X, double pct2Y, double pct3X, double pct3Y)
- {
- double a, b, c;
- getLine(pct2X, pct2Y, pct3X, pct3Y, a, b, c);
- return abs(a * pct1X + b * pct1Y + c) / sqrt(a * a + b * b);
- }
- bool isPointOnLine (double x, double y, double x1, double y1, double x2, double y2) // returns true if point on the line
- {
- double vx = x2 - x1;
- double vy = y2 - y1;
- double vcx = x - x1;
- double vcy = y - y1;
- //если вектора параллельны (лежат на одной прямой)
- if (vx * vcy == vy * vcx) return true;
- return false;
- }
- int main(int argc, char* argv[])
- {
- double d = dist(1,2,3,4,5,6);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement