早教吧 育儿知识 作业答案 考试题库 百科 知识分享

求算两条十字交叉直线交点的程序

题目详情
求算两条十字交叉直线交点的程序
▼优质解答
答案和解析
// VC 6.0 编译通过
#include
// 求两直线交点
// 直线 1 上的两点:(ax1,ay1),(ax2,ay2)
// 直线 2 上的两点:(bx1,by1),(bx2,by2)
// 返回值:true:有交点,保存在 (ix,iy) 中
// :false:两直线平行
bool Intersection(double ax1,double ay1,double ax2,double ay2,double bx1,double by1,double bx2,double by2,double *ix,double *iy)
{
double d = (ay2-ay1) * (bx2-bx1) - (by2-by1) * (ax2-ax1);
if (d==0)
return false; // 两直线平行就退出,避免除数为 0 的情况
*ix = (
(ax2-ax1)*(bx2-bx1)*(by1-ay1)+(ay2-ay1)*(bx2-bx1)*ax1-(by2-by1)*(ax2-ax1)*bx1
) / d;
*iy = (
(ay2-ay1)*(by2-by1)*(bx1-ax1)+(ax2-ax1)*(by2-by1)*ay1-(bx2-bx1)*(ay2-ay1)*by1
) / -d;
return true;
}
void main()
{
double ix,iy;
// 简化示例,没有写 cin 语句.
// 示例,求 (7,3)-(5,8) 和 (3,5)-(10,6) 的交点
if ( Intersection(7,3,5,8,3,5,10,6,&ix,&iy) )
cout
看了 求算两条十字交叉直线交点的程...的网友还看了以下:

下列关于进程和线程的描述中正确的是______。A.进程包含一个或多个线程B.线程包含一个或多个进程  2020-05-24 …

关于进程和线程的说法正确的是()。A.在引入线程的操作系统中,线程是一个特殊的进程B.在引入线程的  2020-05-24 …

创建计数器,以监视本地计算机在数据收集时线程的数目。格式:直方图;标题:“交换文件的使用情况”,黄色  2020-05-31 …

某城市有57条公交线路,己知:a·两站间必有一条公交车线路连通;b、任意两条线路有唯一的站求每条线  2020-06-14 …

一条公交线路的两端分别是A站,B站,公交公司规定:(1)每辆公交车都在50分钟内驶完一个单程(包括  2020-07-11 …

Java问题~下列关于线程的叙述中,正确的是()A.在main方法中只能创建一个线程。B.线程间的  2020-07-17 …

java判断题。求高手解答以下关于线程互斥和同步的叙述中,正确的是()A.临界段是线程互斥使用资源  2020-07-17 …

相交线真的有且仅有一个交点吗?拜托各位大神当两条直线不再是平行线,彼此有过交点,然后会……渐渐远离  2020-08-01 …

下列哪些情况可以终止当前线程的运行?A抛出一个例外时。B当该线程调用sleep()方法下列哪些情况可  2020-11-28 …

哪些情况可以终止当前线程的运行?A、抛出一个例外时。B、当该线程调用sleep()方法时。C、当创建  2020-11-28 …