计算两条直线的交点
2015-11-14 23:55
911 查看
/article/5844328.html
原文有一处错误
int b2 = line2.point1.y - a1 * (line2.point1.x);
应该为
int b2 = line2.point1.y - a2 * (line2.point1.x);
下面是修正后的代码,在此感谢原作者。
原文有一处错误
int b2 = line2.point1.y - a1 * (line2.point1.x);
应该为
int b2 = line2.point1.y - a2 * (line2.point1.x);
下面是修正后的代码,在此感谢原作者。
#include<stdio.h> typedef struct point{ int x; int y; }point; typedef struct line{ point point1; point point2; }line; //计算两条直线的交点 point getCross(line line1, line line2) { point CrossP; //y = a * x + b; int a1 = (line1.point1.y - line1.point2.y) / (line1.point1.x - line1.point2.x); int b1 = line1.point1.y - a1 * (line1.point1.x); int a2 = (line2.point1.y - line2.point2.y) / (line2.point1.x - line2.point2.x); int b2 = line2.point1.y - a2 * (line2.point1.x); CrossP.x = (b1 - b2) / (a2 - a1); CrossP.y = a1 * CrossP.x + b1; return CrossP; } void main() { line line1; line line2; //line1 line1.point1.x = 10; line1.point1.y = 10; line1.point2.x = 50; line1.point2.y = 50; //line2 line2.point1.x = 2; line2.point1.y = 60; line2.point2.x = 60; line2.point2.y = 0; point CointP = getCross(line1, line2); printf("%d,%d\n", CointP.x, CointP.y); }
相关文章推荐
- 博客格式
- 关键字static在c与c++中的区别。
- 黑马程序员——网络通信
- SQL数据库字段数据类型说明
- ReactiveCocoa入门教程——第二部分
- ActionBar 笔记
- 个人阅读作业Week7
- Junit初级编码(二)探索JUnit核心
- JavaScript DOM
- ViewGroup中bringToFront深入解析
- Mac Retina解决gitk模糊的问题
- Notification
- EnumSet源码解析
- 顺序查找与二分查找
- 30分钟带你快速入门MySQL教程
- 【bzoj1052】[HAOI2007]覆盖问题
- how browser works
- IP组播技术介绍及实现例子
- 黑马程序员——File类及Properties类
- [kuangbin带你飞]专题一 简单搜索 总结