精华内容
下载资源
问答
  • 几何画板验证平行四边形对角相等

    千次阅读 2017-03-27 14:05:21
    传统教学中,老师总是用形状是平行四边形的纸来进行对折,给学生们进行演示。现在有了几何画板这个教学帮手,老师可以用它来...本节就给大家介绍用几何画板制作平行四边形对折动画课件,从而验证平行四边形对角相等。

    传统教学中,老师总是用形状是平行四边形的纸来进行对折,给学生们进行演示。现在有了几何画板这个教学帮手,老师可以用它来制作图形变换动画,方便给学生们作直观演示。本节就给大家介绍用几何画板制作平行四边形对折动画课件,从而验证平行四边形对角相等。

    几何画板软件免费获取地址http://wm.makeding.com/iclk/?zoneid=13398

    几何画板制作的平行四边形对折动画课件样图:

    对折平行四边形 
    几何画板课件模板——动态演示沿对角线折叠平行四边形

    在以上课件中,点击“折叠”操作按钮,就可以动态演示平行四边形对折过程,从而观看对折后的图形有哪些性质。以上课件是利用操作按钮来实现对折动画的,也可以手动操作来演示对折平行四边形动画,比如下面的课件:

    平行四边形对折 
    几何画板课件模板——演示沿对角线折叠平行四边形

    在该课件中,用“移动箭头工具”选中画板中的绿点,然后沿着线段的方法拖动该点,也可以演示平行四边形对折过程,观看对折后的图形是什么?有哪些特殊性质。

    平行四边形中与对角线相关的性质:

    1.如果一个四边形是平行四边形,那么这个四边形的两条对角线互相平分。

    2.过平行四边形对角线交点的直线,将平行四边形分成全等的两部分图形。

    3.平行四边形是中心对称图形,对称中心是两对角线的交点。

    4.平行四边形ABCD中,AC、BD是平行四边形ABCD的对角线,则各四边的平方和等于对角线的平方和。

    5.平行四边形对角线把平行四边形面积分成四等份。

    在讲解平行四边形的时候,如果老师有了该课件,就可以动态演示给学生们观看其性质。如果想学习关于几何画板的更多使用教程和课件模板,可参考几何画板中文官网(www.jihehuaban.com.cn)。

    展开全文
  • 平行四边形

    2011-06-02 07:21:00
    从等腰三角形底边上任意一点分别作两腰的平行线,那么所得的平行四边形的周长等于这个等腰三角形的( ...对角线互相平分 中,的值可以是( ) A.1:2:3:4 B.1:2:2:1 C.2:2:1:1 D.2:1:2:1 平行四边形...

     

    从等腰三角形底边上任意一点分别作两腰的平行线,那么所得的平行四边形的周长等于这个等腰三角形的( )

    A.周长  B.周长的一半  C.腰长  D.腰长的2倍

    平行四边形不具有的性质是( )

    A.对边平行  B.对边相等  C.对角线互相平行  D.对角线互相平分

    clip_image001clip_image002[3]中,clip_image003[15]的值可以是( )

    A.1:2:3:4  B.1:2:2:1  C.2:2:1:1  D.2:1:2:1

    平行四边形具有,而一般四边形不具有的性质是( )

    A.外角和等于360°  B.对角线互相平分

    C.内角和等于360°  D.有两条对角线

    如图,clip_image004,垂足分别为E、G,则下列说法中错误的是( )

    clip_image005

    A.clip_image006  B.clip_image007[5]

    C.A、B两点间的距离就是AB的长度  D.clip_image008clip_image009之间的距离就是CD的长度

    clip_image010clip_image002[4]clip_image011的平分线交BCE,且clip_image012,则clip_image013等于( )

    A.30°  B.60°  C.90°  D.120°

    clip_image002[5]ABCD中,∠A比∠B大20°,则∠C的度数为

    A.60° B.80° C.100° D.120°

    clip_image002[6]ABCD的周长为40 cm,△ABC的周长为25 cm,则对角线AC长为

    A.5 cm B.15 cm C.6 cm D.16 cm

    clip_image002[7]ABCD中,∠A=43°,过点ABCCD的垂线,那么这两条垂线的夹角度数为

    A.113° B.115° C.137° D.90°

    ABCD中,∠A∶∠B∶∠C∶∠D的值可以是( )

    A.1∶2∶3∶4 B.1∶2∶2∶1 C.1∶1∶2∶2 D.2∶1∶2∶1

    平行四边行的两条对角线把它分成全等三角形的对数是( )

    A.2 B.4 C.6 D.8

    ABCD中,∠A、∠B的度数之比为5∶4,则∠C等于( )

    A.60° B.80° C.100° D.120°

    ABCD的周长为36 cm,AB=clip_image002[1]BC,则较长边的长为( )

    A.15 cm B.7.5 cm C.21 cm D.10.5 cm

    如图,ABCD中,EF过对角线的交点OAB=4,AD=3,OF=1.3,则四边形BCEF的周长为( )

    clip_image003[13]

    A.8.3 B.9.6 C.12.6 D.13.6

    clip_image001[5]clip_image002[7]中,clip_image003[17],则clip_image004[5]度.

    clip_image001[6]clip_image002[8]中,clip_image005,则clip_image006[5]度.

    clip_image001[7]clip_image002[9]中,clip_image007[7],则clip_image008[5]度.

    clip_image001[8]clip_image002[10]中,clip_image009[5],则clip_image001[9]clip_image002[11]的周长为________cm.

    clip_image001[10]clip_image002[12]中,两邻边的差为4cm,周长为32cm,则两邻边长分别为________.

    若一个平行四边形的一边长是8,一条对角线长是6,则它的另一条对角线长x的取值范围是__________.

    clip_image001[11]clip_image002[13]中,clip_image010的平分线分BC成4cm和3cm两条线段,则clip_image001[12]clip_image002[14]的周长为_________.

    已知clip_image001[13]clip_image002[15]的对角线相交于点O,且clip_image011[5],则周长为__________cm.

    在平行四边形及其两条对角线所组成的图形中,共有_________对全等的三角形.

    已知ABCD中,∠B=70°,则∠A=______,∠C=______,∠D=______.

    ABCD中,AB=3,BC=4,则ABCD的周长等于_______.

    平行四边形的周长等于56 cm,两邻边长的比为3∶1,那么这个平行四边形较长的边长为_______.

    ABCD中,∠A+∠C=270°,则∠B=______,∠C=______.

    和直线l距离为8 cm的直线有______条.

    已知Oclip_image002[21]ABCD的对角线的交点,AC=38 mm,BD= 24 mm,AD=14 mm,那么△OBC的周长等于_________.

    平行四边形的周长为36 cm,一组邻边之差为4 cm,求平行四边形各边的长.

    如图,在ABCD中,AB=AC,若ABCD的周长为38 cm,△ABC的周长比ABCD的周长少10 cm,求ABCD的一组邻边的长.

    clip_image002[23]

    如图,clip_image001[23]clip_image002[25]BC边上一点clip_image003[19]的延长线相交于clip_image004[7],那么clip_image005[4]的度数是多少?

    clip_image006[5]

    如图,clip_image001[24]clip_image002[26]中,EBC上一点,clip_image007[9]clip_image008[7],求clip_image009[7]的度数.

    clip_image010[5]

    如图,clip_image001[25]clip_image002[27]中,clip_image011[7]分别为clip_image012[5]上的高,clip_image013[5],求clip_image001[26]clip_image002[28]各内角的度数和周长.

    clip_image014

    4.如图,以clip_image001[27]clip_image002[29]的两邻边BC、CD为边向外作等边三角形BCP、CDQ,连结PQ、AP、AQ,请判断clip_image015的形状,并证明你的结论.

    clip_image016

    如图,在平行四边形ABCD中,clip_image017Eclip_image018于点F,点G、H分别是BC、AD的中点,试判断线段EHGF的大小关系,并加以证明.

    clip_image019

    如图,在clip_image001[28]clip_image002[30]中,过AC中点O的直线分别交BC、AD的延长线于E、F,那么clip_image020吗?为什么?

    clip_image021

    如图,在ABCD中,对角线ACBD相交于点OMN是过O点的直线,交BCM,交ADNBM=2,AN=2.8,求BCAD的长.

    clip_image004

    如图,在ABCD中,EF分别是BCAD上的点,且AECFAECF相等吗?说明理由.

    clip_image006

    如图,在ABCD中,O是对角线ACBD的交点,BEACDFAC,垂足分别为EF.那么OEOF是否相等?为什么?

    clip_image007

    如图,四边形ABCD是平行四边形,AB边的垂直平分线经过点D,若clip_image002[8]ABCD的周长为52 cm,△ABD的周长比clip_image002[9]ABCD的周长少10 cm,求ABAD的长.

    clip_image003[5]

    如图,已知四边形ABCD是平行四边形,∠BCD的平分线CF交边ABF,∠ADC的平分线DG交边ABG

    (1)求证:AF=GB;(2)请你在已知条件的基础上再添加一个条件,使得△EFG为等腰直角三角形,并说明理由.

    clip_image002

    如图,已知在△ABC中,D、E、F分别是BC、AC、AB的中点,AD与EF交于O,求证:OE=OF,OA=OD。

    clip_image001

    如图,已知矩形ABCD,R、P分别是DC、BC上的点,E、F分别是AP、RP的中点,当P在BC上从B向C移动而R不动时,那么下列结论成立的是( )

    A.EF的长逐渐增大 B.EF的长逐渐减小     C.EF的长不变 D.EF的长不能确定

    clip_image002

    将△ABC沿着中位线EF一刀剪切,用得到的△AEF和四边形EBCF可以拼成平行四边形EBCP,剪切线与拼图如图示1,仿上述的方法,按要求完成下列操作设计,并在规定位置画出图示.

    ⑴在△ABC中,增加条件 ,沿着 一刀剪切后可以拼成矩形,剪切线与拼图画在图示2的位置;

    ⑵在△ABC中,增加条件 ,沿着 一刀剪切后可以拼成菱形,剪切线与拼图画在图示3的位置;

    ⑶在△ABC中,增加条件 ,沿着 一刀剪切后可以拼成正方形,剪切线与拼图画在图示4的位置;

    ⑷在△ABC(AB≠AC)中,一刀剪切后也可以拼成等腰梯形,首先要确定剪切线,其操作过程(剪切线的作法)是:

    然后,沿着剪切线一刀剪切后可以拼成等腰梯形,剪切线与拼图画在图示5的位置.

    clip_image001[1]clip_image002[1]

    已知clip_image002[1]ABCD中,AEBDCFBD,垂足为EF,求证:EB=DF.

    clip_image003

    clip_image002[3]ABCD中,∠A=150°,AB=8 cm,BC=10 cm,求:四边形ABCD的面积.

     image

    已知如下图,在clip_image002[15]ABCD中,ACBD相交于点O,点EFAC上,且BEDF. 求证:BE=DF.

    clip_image003[7]

    如图,在clip_image002[17]ABCD中,O是对角线ACBD的交点,OEADEOFBCF. 求证:OE=OF.

    clip_image003[9]

    如图,在clip_image002[19]ABCD中,EF分别是ABDC上的点,且AE=CF,求证:DE=BF.

    clip_image003[11]

    设点E是平行四边形ABCD的边AB的中点,F是BC边上一点,线段DE和AF相交于点P,点Q在线段DE上,且AQ∥PC.

    (1)证明:PC=2AQ.

    (2)当点F为BC的中点时,试比较△PFC和梯形APCQ面积的大小关系,并对你的结论加以证明.

    wps_clip_image-4424

    转载于:https://www.cnblogs.com/banianji/archive/2011/06/02/2067608.html

    展开全文
  • 叉乘和平行四边形面积

    千次阅读 2020-06-02 14:22:59
  • 1.类和对象简介 类和对象的关系:类是对象的抽象,而对象是类的特例,即类的具体表现形式。 类和对象的区别:类是对象的模板,类是抽象的不占用内存,对象是具体的,占用储存空间...利用点、线、面的基本知识,声...

    1.类和对象简介

    类和对象的关系:类是对象的抽象,而对象是类的特例,即类的具体表现形式。
    类和对象的区别:类是对象的模板,类是抽象的不占用内存,对象是具体的,占用储存空间。
    类中主要包括数据和成员函数(通常情况下数据设置为私有,成员函数通常设为共用,因为成员函数通常作为外界的接口)
    注意:声明类一定要放在对象之前

    2.程序实例

    1.程序简介

    下面是一个实例
    程序功能:
    利用点、线、面的基本知识,声明Point,Line,Friangle,PolyAngle四个类,完成以下功能。
    Point类功能:
    (1) 移动一个点;
    (2) 显示一个点;
    (3) 可计算这个点到原点的距离。
    Line类功能:
    (1) 计算点到直线的距离;
    (2) 直线的斜率;
    (3) 判断两条直线的关系(平行/相交(交点坐标能够给出来并显示)/垂直);
    Friangle类功能:
    (1) 判断三点能否构成三角形;
    (2) 判断三角形是等边,等腰或者是直角;
    (3) 计算三角形的面积。
    PolyAngle类功能:
    (1) 判断四点能否构成四边形,并判断其是凹的,还是凸的;
    (2) 判断四边形是否是等腰梯形;
    (3) 判断四边形是否是平行四边形,菱形;
    (4) 判断它是否是一个矩形;
    (5) 计算四边形的面积和周长。

    2. 源代码

    在这里插入代码片
    #include<iostream>
    #include<cmath>// 数学计算要用到此头文件 
    #include <cstdlib>//暂停和清屏函数要用到此头文件 
    using namespace std;
    class Point//点类 
    {
    	public:
    		Point()//构造函数 
    		{
    			x=0;
    			y=0;
    		}
    		void f1();//输入A点的坐标函数
    		void f2();//输入A点移动量的函数
    		void f3();//输出点A的坐标函数 
    		void f4();//计算A点到原点的距离 
    	private:
    		double x;
    		double y;
    };
    void Point::f1()//输入A点的坐标函数
    {
    	cout<<"请输入A点的坐标(两个数中间用空格隔开):";
    	cin>>x>>y;
    }
    void Point::f2()//输入A点移动量的函数
    {
    	double x1,y1;//x1和y1表示 A点在x轴和y轴上的增量
    	cout<<"请依次输入A点在x轴和y轴上的增量(两个数中间用空格隔开):";
    	cin>>x1>>y1;
    	x=x+x1;
    	y=y+y1; 
    }
    void Point::f3()//输出A点此时的坐标函数 
    {
    	cout<<"此时A点的坐标为:"<<"("<<x<<","<<y<<")"<<endl;
    }
    void Point::f4()//计算A点到原点的距离
    {
    	double d;
    	d=sqrt((x-0)*(x-0)+(y-0)*(y-0));//计算A点到原点的距离
    	cout<<"此时A点到原点的距离为:"<<d<<endl; 
    }
    class Line//线类 
    {
    	public:
    		Line()//构造函数 
    		{
    			ax=bx=cx=dx=ex=0;
    			ay=by=cy=dy=ey=0; 
    		}
    		void f1();// 计算点到直线的距离 
    		void f2();// 计算直线的斜率 
    		void f3();// 计算两条直线的关系 
    	private:
    		double ax,bx,cx,dx,ex;
    		double ay,by,cy,dy,ey;
    		/*定义5个点a点是动点,bc点构成第一条直线,de点构成第二条直线*/
    };
    void Line::f1()// 计算点到直线的距离
    {
    	double d,d1,d2,k,b;
    	cout<<"请输入a点的坐标(两个数中间用空格隔开):";
    	cin>>ax>>ay;
    	cout<<"开始输入直线(请按照提示操作)"<<endl;
    	cout<<"请输入直线上的2个不同的点(例如:1 2 2 0):";
    	cin>>bx>>by>>cx>>cy;
    	while(bx==cx&&by==cy)//判断输入的两个点是否相同 
    	{
    		cout<<"输入的2个点相同!"<<endl<<"请重新输入:";
    		cin>>bx>>by>>cx>>cy; 
    	}
    	cout<<"输入的b,c两点坐标分别为:"<<"b("<<bx<<","<<by<<"),"<<"c("<<cx<<","<<cy<<")"<<endl;
    	if(bx==cx)//直线斜率不存在 
    	{
    		 d=ax-bx;//点a到直线的距离 
    		 if(d<0)
    		 {
    		 	d=-d;
    		 }
    		 if(bx>=0)
    		 {
    		 	cout<<"直线的方程为:x-"<<bx<<"=0";
    		 	cout<<"点a"<<"("<<ax<<","<<ay<<")"<<"到直线x-"<<bx<<"=0"<<"的距离为d,d="<<d<<endl; 
    		 }
    		 else
    		 {
    		 	cout<<"直线的方程为:x+"<<-bx<<"=0";
    		 	cout<<"点a"<<"("<<ax<<","<<ay<<")"<<"到直线x+"<<-bx<<"=0"<<"的距离为d,d="<<d<<endl; 
    		 }	  
    	}
    	else//斜率存在 
    	{
    		k=(by-cy)/(bx-cx);
    		b=cy-k*cx;
    		d1=k*ax+(-1)*ay+b;
    		d2=sqrt(k*k+-1*-1);
    		if(d1<0)
    		{
    			d=-d1/d2;
    		}
    		else
    		{
    			d=d1/d2;
    		}
    		if(b>=0)
    		{
    			cout<<"直线的方程为:"<<k<<"x-y+"<<b<<"=0"<<endl;
    			cout<<"点a"<<"("<<ax<<","<<ay<<")"<<"到直线"<<k<<"x-y+"<<b<<"=0的距离为d,d="<<d<<endl;
    		}
    		else
    		{
    			cout<<"直线的方程为:"<<k<<"x-y"<<b<<"=0"<<endl;
    			cout<<"点a"<<"("<<ax<<","<<ay<<")"<<"到直线"<<k<<"x-y"<<b<<"=0的距离为d,d="<<d<<endl;
    		}
    		
    	}
    }
    void Line::f2()// 计算直线的斜率 
    {
    	double k,b;
    	cout<<"开始输入直线的方程(请按照提示操作)"<<endl;
    	cout<<"请输入直线上的2个不同的点(例如:1 2 2 0):";
    	cin>>bx>>by>>cx>>cy;
    	while(bx==cx&&by==cy)//判断输入的两个点是否相同 
    	{
    		cout<<"输入的2个点相同!"<<endl<<"请重新输入:";
    		cin>>bx>>by>>cx>>cy; 
    	}
    	cout<<"输入的b,c两点坐标分别为:"<<"b("<<bx<<","<<by<<"),"<<"c("<<cx<<","<<cy<<")"<<endl;
    	if(bx==cx)//直线斜率不存在 
    	{ 
    		 if(bx>=0)
    		 {
    		 	cout<<"直线的方程为:x-"<<bx<<"=0";
    		 	cout<<"直线x-"<<bx<<"=0"<<"的斜率不存在"<<endl; 
    		 }
    		 else
    		 {
    		 	cout<<"直线的方程为:x+"<<-bx<<"=0";
    		 	cout<<"直线x+"<<-bx<<"=0"<<"的斜率不存在"<<endl; 
    		 }	  
    	}
    	else//斜率存在 
    	{
    		k=(by-cy)/(bx-cx);
    		b=cy-k*cx;
    		if(b>=0)
    		{
    			cout<<"直线的方程为:"<<k<<"x-y+"<<b<<"=0"<<endl;
    			cout<<"直线"<<k<<"x-y+"<<b<<"=0的斜率为k,k="<<k<<endl;
    		}
    		else
    		{
    			cout<<"直线的方程为:"<<k<<"x-y"<<b<<"=0"<<endl;
    			cout<<"直线"<<k<<"x-y"<<b<<"=0的斜率为k,k="<<k<<endl;
    		}		
    	}
    }
    void Line::f3()// 计算两条直线的关系
    {
    	double k,k1,b,b1,x0,y0;
    	cout<<"开始输入第1条直线的方程(请按照提示操作)"<<endl;
    	cout<<"请输入直线上的2个不同的点(例如:1 2 2 0):";
    	cin>>bx>>by>>cx>>cy;
    	while(bx==cx&&by==cy)//判断输入的两个点是否相同 
    	{
    		cout<<"输入的2个点相同!"<<endl<<"请重新输入:";
    		cin>>bx>>by>>cx>>cy; 
    	}
    	cout<<"输入的b,c两点坐标分别为:"<<"b("<<bx<<","<<by<<"),"<<"c("<<cx<<","<<cy<<")"<<endl;
    	if(bx==cx)//直线斜率不存在 
    	{ 
    		 if(bx>=0)
    		 {
    		 	cout<<"第1条直线的方程为:x-"<<bx<<"=0"<<endl;
    		 }
    		 else
    		 {
    		 	cout<<"第1条直线的方程为:x+"<<-bx<<"=0"<<endl; 
    		 }	  
    	}
    	else//斜率存在 
    	{
    		k=(by-cy)/(bx-cx);
    		b=cy-k*cx;
    		if(b>=0)
    		{
    			cout<<"第1条直线的方程为:"<<k<<"x-y+"<<b<<"=0"<<endl;
    		}
    		else
    		{
    			cout<<"第1条直线的方程为:"<<k<<"x-y"<<b<<"=0"<<endl;
    		}		
    	}
    	cout<<"开始输入第2条直线的方程(请按照提示操作)"<<endl;
    	cout<<"请输入直线上的2个不同的点(例如:1 2 2 0):";
    	cin>>dx>>dy>>ex>>ey;
    	while(dx==ex&&dy==ey)//判断输入的两个点是否相同 
    	{
    		cout<<"输入的2个点相同!"<<endl<<"请重新输入:";
    		cin>>dx>>dy>>ex>>ey; 
    	}
    	cout<<"输入的d,e两点坐标分别为:"<<"d("<<dx<<","<<dy<<"),"<<"e("<<ex<<","<<ey<<")"<<endl;
    	if(dx==ex)//直线斜率不存在 
    	{ 
    		 if(dx>=0)
    		 {
    		 	cout<<"第2条直线的方程为:x-"<<dx<<"=0"<<endl;
    		 }
    		 else
    		 {
    		 	cout<<"第2条直线的方程为:x+"<<-dx<<"=0"<<endl; 
    		 }	  
    	}
    	else//斜率存在 
    	{
    		k1=(dy-ey)/(dx-ex);
    		b1=dy-k1*dx;
    		if(b1>=0)
    		{
    			cout<<"第2条直线的方程为:"<<k1<<"x-y+"<<b1<<"=0"<<endl;
    		}
    		else
    		{
    			cout<<"第2条直线的方程为:"<<k1<<"x-y"<<b1<<"=0"<<endl;
    		}		
    	}/*以上代码是输入两条直线*/	
    	system ("pause");//暂停 
    	system("cls");//清屏 
    	/*以下代码是输出两条直线*/
    	if(bx==cx)//直线斜率不存在 
    	{ 
    		 if(bx>=0)
    		 {
    		 	cout<<"第1条直线的方程为:x-"<<bx<<"=0"<<endl;
    		 }
    		 else
    		 {
    		 	cout<<"第1条直线的方程为:x+"<<-bx<<"=0"<<endl; 
    		 }	  
    	}
    	else//斜率存在 
    	{
    		if(b>=0)
    		{
    			cout<<"第1条直线的方程为:"<<k<<"x-y+"<<b<<"=0"<<endl;
    		}
    		else
    		{
    			cout<<"第1条直线的方程为:"<<k<<"x-y"<<b<<"=0"<<endl;
    		}		
    	}
    	if(dx==ex)//直线斜率不存在 
    	{ 
    		 if(dx>=0)
    		 {
    		 	cout<<"第2条直线的方程为:x-"<<dx<<"=0"<<endl;
    		 }
    		 else
    		 {
    		 	cout<<"第2条直线的方程为:x+"<<-dx<<"=0"<<endl; 
    		 }	  
    	}
    	else//斜率存在 
    	{
    		if(b1>=0)
    		{
    			cout<<"第2条直线的方程为:"<<k1<<"x-y+"<<b1<<"=0"<<endl;
    		}
    		else
    		{
    			cout<<"第2条直线的方程为:"<<k1<<"x-y"<<b1<<"=0"<<endl;
    		}		
    	}
    	/*以下代码是计算两条直线的位置关系*/
    	if(bx==cx)//第一条直线斜率不存在
    	{
    		if(dx==ex)//第二条直线斜率不存在
    		{
    			if(bx==dx)
    			{
    				cout<<"这两条直线平行且重合。"<<endl;
    			} 
    			else
    			{
    				cout<<"这两条直线平行。"<<endl;
    			}	
    		} 
    		else//第二条直线斜率存在 
    		{
    			if(k1==0)
    			{
    				x0=bx;
    				y0=dy;
    				cout<<"这两条直线相交且垂直。"<<endl;
    				cout<<"交点坐标为:"<<"("<<x0<<","<<y0<<")"<<endl;
    			}
    			else
    			{
    				x0=bx;
    				y0=k1*x0+b1;	
    				cout<<"这两条直线相交。"<<endl;
    				cout<<"交点坐标为:"<<"("<<x0<<","<<y0<<")"<<endl;
    			}
    		} 
    	}
    	else//第一条直线斜率存在
    	{
    		if(dx==ex)//第二条直线斜率不存在
    		{
    			if(k==0)
    			{
    				x0=dx;
    				y0=by;
    				cout<<"这两条直线相交且垂直。"<<endl;
    				cout<<"交点坐标为:"<<"("<<x0<<","<<y0<<")"<<endl;
    			} 
    			else
    			{
    				x0=dx;
    				y0=k*x0+b;
    			 	cout<<"这两条直线相交。"<<endl;
    				cout<<"交点坐标为:"<<"("<<x0<<","<<y0<<")"<<endl;
    			}	
    		} 
    		else//第二条直线斜率存在 
    		{
    			if(k==k1)
    			{
    				if(b==b1)
    				{
    					cout<<"这两条直线平行且重合。"<<endl;
    			 	}
    			 	else
    			 	{
    				 	cout<<"这两条直线平行。"<<endl;
    				}
    			}
    			else
    			{
    				if((k*k1)==(-1))
    				{
    					x0=(b1-b)/(k-k1);
    					y0=k*x0+b;
    					cout<<"这两条直线相交且垂直。"<<endl;
    					cout<<"交点坐标为:"<<"("<<x0<<","<<y0<<")"<<endl;		
    				}
    				else
    				{
    					x0=(b1-b)/(k-k1);
    					y0=k*x0+b;
    					cout<<"这两条直线相交。"<<endl;
    					cout<<"交点坐标为:"<<"("<<x0<<","<<y0<<")"<<endl;					
    				}
    			}			 
    		} 		
    	}			
    } 
    class Friangle
    {
    	public:
    		Friangle()//构造函数 
    		{
    			ax=bx=cx=0;
    			ay=by=cy=0;
    		}
    		int f1();// 判断三点能否构成三角形。 
    		void f2();// 判断三角形是等边,等腰或者是直角。
    		void f3();//计算三角形的面积。
    		void f4();//输入三个点的函数 
    		void f5();// 判断三角形是等边,等腰或者是直角。子函数 
    		void f6();//计算三角形的面积。子函数 
    	private:
    		double ax,bx,cx;
    		double ay,by,cy;		
    		double C,C1,Cab,Cac,Cbc;
    		double s;	
    };
    int Friangle::f1()//判断三点能否构成三角形。 
    {
    	int i;
    	double k,b;
    	if((ax==bx&&ay==by)||(ax==cx&&ay==cy)||(bx==cx&&by==cy))
    	{
    		cout<<"3个点之中至少有2个点重合,故这三个点不能构成三角形"<<endl; 
    	}
    	else
    	{
    		if(bx==cx)//直线斜率不存在 
    		{
    			 	//此时bc直线方程为x=bx;
    			 	if(ax==bx)
    			 	{
    			 		cout<<"abc在一条直线上,故无法构成三角形!"<<endl; 
    			 		i=0;
    			 	}
    			 	else
    			 	{
    			 		cout<<"abc三点能够成三角形。"<<endl;
    					i=1; 
    			 	}
    		}
    		else//斜率存在 
    		{
    			k=(by-cy)/(bx-cx);
    			b=cy-k*cx;
    		 	if(ay==(ax*k+b))
    		 	{
    		 		cout<<"abc在一条直线上,故无法构成三角形!"<<endl;
    				i=0; 
    		 	}
    		 	else
    		 	{
    		 		cout<<"abc三点能够成三角形。"<<endl;
    		 		i=1;
    		 	}
    		}	
    	}
    	return i;
    }
    void Friangle::f2()// 判断三角形是等边,等腰或者是直角。
    {
    	int n,i;
    	do
    	{
    		cout<<"此时abc三个点的坐标分别为"<<"a("<<ax<<","<<ay<<")"<< "b("<<bx<<","<<by<<")"<<"c("<<cx<<","<<cy<<")"<<endl;
    		cout<<"1.判断当前三个点能否构成三角形,再判断三角形的形状"<<endl;
    		cout<<"2.重新输入三个点判断能否构成三角形,再判断三角形的形状" <<endl;
    		cout<<"请选择:";
    		cin>>n;
    		switch(n)
    			{
    				case 1:system ("pause"); system("cls");i=f1();break; 
    				case 2: system ("pause"); system("cls");f4();i=f1();break; 
    				default :cout<<"输入有误!将要重新选择"<<endl;system ("pause");system("cls"); 
    			}
    	}while(n!=1&&n!=2);
    	if(i==1)
    	{
    		f5(); 
    	}
    }
    void Friangle::f3()//计算三角形的面积。
    {
    	int n,i;
    	do
    	{
    		cout<<"此时abc三个点的坐标分别为"<<"a("<<ax<<","<<ay<<")"<< "b("<<bx<<","<<by<<")"<<"c("<<cx<<","<<cy<<")"<<endl;
    		cout<<"1.判断当前三个点能否构成三角形,再计算三角形的面积"<<endl;
    		cout<<"2.重新输入三个点判断能否构成三角形,再计算三角形的面积" <<endl;
    		cout<<"请选择:";
    		cin>>n;
    		switch(n)
    			{
    				case 1:system ("pause"); system("cls");i=f1();break; 
    				case 2: system ("pause"); system("cls");f4();i=f1();break; 
    				default :cout<<"输入有误!将要重新选择"<<endl;system ("pause");system("cls"); 
    			}
    	}while(n!=1&&n!=2);
    	if(i==1)
    	{
    		f6();
    	}
    }
    void Friangle::f4()//输入三个点的函数 
    {
    	cout<<"请输入三个点的坐标(例如:1 0 2 0 0 0):" ;
    	cin>>ax>>ay>>bx>>by>>cx>>cy;
    } 
    void Friangle::f5()// 判断三角形是等边,等腰或者是直角。子函数
    {
    	double a[3];
    	double t; 
    	int i,j; 
    	Cab=sqrt((ax-bx)*(ax-bx)+(ay-by)*(ay-by));
    	Cac=sqrt((ax-cx)*(ax-cx)+(ay-cy)*(ay-cy));
    	Cbc=sqrt((bx-cx)*(bx-cx)+(by-cy)*(by-cy));
    	a[0]=(ax-bx)*(ax-bx)+(ay-by)*(ay-by);//令a[0]=Cab*Cab; 
    	a[1]=(ax-cx)*(ax-cx)+(ay-cy)*(ay-cy);
    	a[2]=(bx-cx)*(bx-cx)+(by-cy)*(by-cy);
    	for(i=0;i<2;i++)//冒泡排序对三角形的三个边进行排序 
    	{
    		for(j=0;j<2-i;j++)
    		{
    			if(a[i]>a[i+1])
    			{
    				t=a[i];
    				a[i]=a[i+1];
    				a[i+1]=t;
    			}
    		}
    	}
    	cout<<"三角形的三个点的坐标分别为:"<<endl;
    	cout<<"a点坐标:a("<<ax<<","<<ay<<")"<<endl;
    	cout<<"b点坐标:b("<<bx<<","<<by<<")"<<endl;
    	cout<<"c点坐标:c ("<<cx<<","<<cy<<")"<<endl;
    	cout<<"三角形的三个边长及变长的平方分别为:"<<endl;
    	cout<<"ab="<<Cab<<" ac"<<Cac<<" bc"<<Cbc<<endl;
    	cout<<"ab*ab="<<a[0]<<" ac*ac="<<a[1]<<" bc*bc="<<a[2]<<endl;	
    	if(Cab==Cac||Cab==Cbc||Cbc==Cac)
    	{
    		if(Cab==Cac&&Cab==Cbc)
    		{
    			cout<<"这个三角形为等腰三角形,并且为等边三角形"<<endl;	
    		}
    		else
    		{				
    				if(a[2]==a[0]+a[1]) 
    				{
    					cout<<"这个三角形为等腰直角三角形"<<endl;
    				}
    				else
    				{
    					cout<<"这个三角形为等腰三角形,但不是等边三角形"<<endl;
    				} 		
    		}
    	}
    	else
    	{
    		if(a[2]==a[0]+a[1]) 
    		{
    			cout<<"这个三角形为普通的直角三角形"<<endl;
    		}
    		else
    		{
    			cout<<"这个三角形为普通的三角形"<<endl;
    		}		
    	}
    } 
    void Friangle::f6()//计算三角形的面积。子函数 
    {
    	Cab=sqrt((ax-bx)*(ax-bx)+(ay-by)*(ay-by));
    	Cac=sqrt((ax-cx)*(ax-cx)+(ay-cy)*(ay-cy));
    	Cbc=sqrt((bx-cx)*(bx-cx)+(by-cy)*(by-cy));
    	C=Cab+Cac+Cbc;
    	C1=C/2;
    	s=sqrt(C1*(C1-Cab)*(C1-Cac)*(C1-Cbc));
    	cout<<"三角形的面积为:s,s="<<s<<endl;
    } 
    class PolyAngle
    {
    	public:
    		PolyAngle()//构造函数 
    		{
    			ax=bx=cx=dx=0;
    			ay=by=cy=dy=0;
    		}
    		void f1();//判断四点能否构成四边形,并判断其是凹的,还是凸的。
    		void f1a();//输入四个点的函数 
    		void f1b();//调用计算函数 
    		int f1c();// 计算函数 
    		int f1d(double a1x,double a1y,double b1x,double b1y,double c1x,double c1y);// 计算函数2 
    		void f1e();//判断四边形的凹凸 
    		double f1f(double a1x,double a1y,double b1x,double b1y,double c1x,double c1y);//计算小三角形面积 
    		void f2();// 判断四边形的形状 1
    		void f2a();// 判断四边形的形状 2
    		void f2b();//判断6组边的关系
    		int f2c(double x1,double y1,double x2,double y2,double x3,double y3,double x4,double y4);//判断两条直线的关系 
    		void f2d();//判断四边形的形状 3
    		void f3();//  计算四边形的面积和周长
    	private:
    		double ax,bx,cx,dx;
    		double ay,by,cy,dy;		
    		double C,Cacb,Cacd,Cabd,Ccbd,Cacb1,Cacd1,Cabd1,Ccbd1,Cab,Cbc,Ccd,Cda,Cac,Cbd;
    		double s,sacb,sacd,sabd,scbd,sacb1,sacd1,sabd1,scbd1;
    		int q;//q=0表示四个点无法构成四边形q=1表示四个点能构成四边形
    		int guanxiabc,guanxibcd,guanxicda,guanxidab,guanxiadbc,guanxiabcd;//这些变量用来记录两条直线之间的关系,0代表平行,1代表垂直,2代表普通的相交	
    };
    void PolyAngle::f1()//判断四点能否构成四边形,并判断其是凹的,还是凸的。
    {
    	f1a();//输入四个点的函数
    	f1b();//计算输入的四个点能否构成四边形,并判断其是凹的,还是凸的。
    }
    void PolyAngle::f1a()//输入四个点的函数 
    {
    	cout<<"请依次输入四边形ABCD四个角点ABCD的坐标(例如:0 0 1 0 1 1 0 1):" ;
    	cin>>ax>>ay>>bx>>by>>cx>>cy>>dx>>dy;
    } 
    void PolyAngle::f1b()//计算输入的四个点能否构成四边形
    {
    	int i;
    	i=f1c();//计算输入的四个点能否构成四边形
    	if(i==1)//i=1表示四个点能构成四边形
    	{
    		f1e();//判断四边形的凹凸	
    	}	
    }  
    int PolyAngle::f1c()// 计算函数 
    {
    	int a,b,c,d,n;
    	if((ax==bx&&ay==by)||(ax==cx&&ay==cy)||(ax==dx&&ay==dy)||(bx==cx&&by==cy)||(bx==dx&&by==dy)||(cx==dx&&cy==dy))
    	{
    		q=0;
    		n=0;//返回上级的一个参数用来判断四个点能否构成四边形 
    		cout<<"4个点的坐标如下:"<<endl;
    		cout<<"a("<<ax<<","<<ay<<")"<<endl<<"b("<<bx<<","<<by<<")"<<endl<<"c("<<cx<<","<<cy<<")"<<endl<<"d("<<dx<<","<<dy<<")"<<endl;
    		cout<<"4个点之中至少有2个点重合,故这4个点不能构成四边形"<<endl; 
    	}
    	else
    	{
    		a=f1d(ax,ay,bx,by,cx,cy);//判断ABC三点能否构成三角形 
    		b=f1d(bx,by,cx,cy,dx,dy);//判断BCD三点能否构成三角形 
    		c=f1d(ax,ay,cx,cy,dx,dy);//判断ACD三点能否构成三角形 
    		d=f1d(ax,ay,bx,by,dx,dy);//判断ABD三点能否构成三角形
    		/*若任意三点都能构成三角形则ABCD即可构成四边形*/ 
    		if(a==1&&b==1&&c==1&&d==1)
    		{
    			q=1;
    			n=1;//返回上级的一个参数用来判断四个点能否构成四边形 
    			cout<<"4个点的坐标如下:"<<endl;
    			cout<<"a("<<ax<<","<<ay<<")"<<endl<<"b("<<bx<<","<<by<<")"<<endl<<"c("<<cx<<","<<cy<<")"<<endl<<"d("<<dx<<","<<dy<<")"<<endl;
    			cout<<"这4个点能构成四边形"<<endl;
    		} 
    		else
    		{
    			q=0;
    			n=0;//返回上级的一个参数用来判断四个点能否构成四边形 
    			cout<<"4个点的坐标如下:"<<endl;
    			cout<<"a("<<ax<<","<<ay<<")"<<endl<<"b("<<bx<<","<<by<<")"<<endl<<"c("<<cx<<","<<cy<<")"<<endl<<"d("<<dx<<","<<dy<<")"<<endl;
    			cout<<"这4个点不能构成四边形"<<endl;
    		}
    	} 
    	return n;
    } 
    int PolyAngle::f1d(double a1x,double a1y,double b1x,double b1y,double c1x,double c1y)// 计算函数 2
    {
    	int i;
    	double k,b;
    	if((a1x==b1x&&a1y==b1y)||(a1x==c1x&&a1y==c1y)||(b1x==c1x&&b1y==c1y))
    	{
    		i=0; 
    	}
    	else
    	{
    		if(b1x==c1x)//直线斜率不存在 
    		{
    			 	//此时bc直线方程为x=b1x;
    			 	if(a1x==b1x)
    			 	{ 
    			 		i=0;
    			 	}
    			 	else
    			 	{
    					i=1; 
    			 	}
    		}
    		else//斜率存在 
    		{
    			k=(b1y-c1y)/(b1x-c1x);
    			b=c1y-k*c1x;
    		 	if(a1y==(a1x*k+b))
    		 	{
    				i=0; 
    		 	}
    		 	else
    		 	{
    		 		i=1;
    		 	}
    		}	
    	}
    	return i;
    }
    void PolyAngle::f1e()//判断四边形的凹凸
    {
    	double s1,s2;
    	Cab=sqrt((ax-bx)*(ax-bx)+(ay-by)*(ay-by));//计算ab的长度 
    	Cbc=sqrt((bx-cx)*(bx-cx)+(by-cy)*(by-cy));
    	Ccd=sqrt((cx-dx)*(cx-dx)+(cy-dy)*(cy-dy));
    	Cda=sqrt((dx-ax)*(dx-ax)+(dy-ay)*(dy-ay));
    	Cac=sqrt((ax-cx)*(ax-cx)+(ay-cy)*(ay-cy));
    	Cbd=sqrt((bx-dx)*(bx-dx)+(by-dy)*(by-dy));
    	C=Cab+Cbc+Ccd+Cda;//计算四边形的周长 
    	sacb=f1f(ax,ay,bx,by,cx,cy);//计算三角形acb的面积 
    	sacd=f1f(ax,ay,cx,cy,dx,dy);
    	sabd=f1f(ax,ay,bx,by,dx,dy);
    	scbd=f1f(bx,by,cx,cy,dx,dy);	
    	s1=sacb+sacd;
    	s2=sabd+scbd;
    	if(s1==s2)
    	{
    		s=s1;//四边形的面积 
    		cout<<"四边形为凸四边形!"<<endl;
    	}
    	else
    	{
    		s=s1;//四边形的面积 
    		cout<<"四边形为凹四边形!"<<endl;
    	}
    }
    double PolyAngle::f1f(double a1x,double a1y,double b1x,double b1y,double c1x,double c1y)//计算小三角形面积 
    {
    	double d,d1,d2,k,b,Cab,s;
    	Cab=sqrt((a1x-b1x)*(a1x-b1x)+(a1y-b1y)*(a1y-b1y));//计算ab的长度 
    	if(a1x==b1x)//直线斜率不存在 
    	{
    		 d=a1x-c1x;//点a到直线的距离 
    		 if(d<0)
    		 {
    		 	d=-d;
    		 }
    	}
    	else//斜率存在 
    	{
    		k=(a1y-b1y)/(a1x-b1x);
    		b=a1y-k*a1x;
    		d1=k*c1x+(-1)*c1y+b;
    		d2=sqrt(k*k+-1*-1);
    		if(d1<0)
    		{
    			d=-d1/d2;
    		}
    		else
    		{
    			d=d1/d2;
    		}		
    	}
    	s=(Cab*d)/2;
    	return s;
    } 
    void PolyAngle::f2()//判断四边形的形状 1
    {
     	f1a();//输入4个点 
     	f1c();//判断4个点能否构成四边形;
    	f2a();// //判断四边形的形状 2
    } 
    void PolyAngle::f2a()//判断四边形的形状 2
    {
    	if(q==1)//q=1表示能构成四边形 
    	{
    		f2b();//判断6组边的关系 
    		f2d();//判断四边形的形状 
    	} 
    } 
    void PolyAngle::f2b()//判断6组边的关系
    {
    	guanxiabc=f2c(ax,ay,bx,by,bx,by,cx,cy);
    	guanxibcd=f2c(bx,by,cx,cy,cx,cy,dx,dy);
    	guanxicda=f2c(cx,cy,dx,dy,dx,dy,ax,ay);
    	guanxidab=f2c(dx,dy,ax,ay,ax,ay,bx,by);
    	guanxiadbc=f2c(ax,ay,dx,dy,bx,by,cx,cy);
    	guanxiabcd=f2c(ax,ay,bx,by,cx,cy,dx,dy);
    } 
    int PolyAngle::f2c(double x1,double y1,double x2,double y2,double x3,double y3,double x4,double y4)//判断两条直线的关系 
    {
    	int a;//返回的数0代表平行,1代表垂直,2代表普通的相交	 
    	double k1,k2;
    	if(x1!=x2)//第一条直线斜率存在 
    	{
    		k1=(y1-y2)/(x1-x2);
    	}
    	if(x3!=x4)//第2条直线斜率存在 
    	{
    		k2=(y3-y4)/(x3-x4);
    	}/*以上代码是计算两条直线的斜率*/	
    	if(x1==x2)//第一条直线斜率不存在
    	{
    		if(x3==x4)//第二条直线斜率不存在
    		{
    		 	a=0;
    		} 
    		else//第二条直线斜率存在 
    		{
    			if(k2==0)
    			{
    			 	a=1;
    			}
    			else
    			{
    			 	a=2;
    			}
    		} 
    	}
    	else//第一条直线斜率存在
    	{
    		if(x3==x4)//第二条直线斜率不存在
    		{
    			if(k1==0)
    			{
    			 	a=1;
    			} 
    			else
    			{
    			 	a=2;
    			}	
    		} 
    		else//第二条直线斜率存在 
    		{
     			if(k1==k2)
     			{
     				a=0;
     			}
     			else
     			{
     				if((k1*k2)==-1)
    				{
    				 	a=1;	
    				}
    				else
    				{
    				 	a=2;				
    				}			
     			}						 
    		} 		
    	}	
    	return a;		
    }
    void PolyAngle::f2d()//判断四边形的形状 3
    {
    	Cab=sqrt((ax-bx)*(ax-bx)+(ay-by)*(ay-by));//计算ab的长度 
    	Cbc=sqrt((bx-cx)*(bx-cx)+(by-cy)*(by-cy));
    	Ccd=sqrt((cx-dx)*(cx-dx)+(cy-dy)*(cy-dy));
    	Cda=sqrt((dx-ax)*(dx-ax)+(dy-ay)*(dy-ay));
    	if((guanxiabcd==0)&&(guanxiadbc!=0))
    	{
    		if(Cbc==Cda)
    		{
    			cout<<"四边形为等腰梯形!"<<endl;
    		}
    		else
    		{
    			cout<<"四边形为梯形!"<<endl;
    		}	
    	}
    	if((guanxiabcd!=0)&&(guanxiadbc==0))
    	{
    		if(Cab==Ccd)
    		{
    			cout<<"四边形为等腰梯形!"<<endl;
    		}
    		else
    		{
    			cout<<"四边形为梯形!"<<endl;
    		}
    	}
    	if((guanxiabcd==0)&&(guanxiadbc==0))
    	{
    		if(Cab==Cbc&&Cab==Ccd&&Cab==Cda)
    		{
    			if(guanxiabc==1&&guanxibcd==1&&guanxicda==1&&guanxidab==1)
    			{
    				cout<<"四边形为正方形!"<<endl;
    			}
    			else
    			{
    				cout<<"四边形为菱形!"<<endl;
    			}
    		}
    		else
    		{
    			if(guanxiabc==1&&guanxibcd==1&&guanxicda==1&&guanxidab==1)
    			{
    				cout<<"四边形为矩形!"<<endl;
    			}
    			else
    			{
    				cout<<"四边形为平行四边形!"<<endl;
    			}		
    		}
    	}
    	if((guanxiabcd!=0)&&(guanxiadbc!=0))
    	{
    		cout<<"四边形为普通的四边形!"<<endl;
    	}
    }
    void PolyAngle::f3()//计算四边形的面积和周长
    {
    	f1();
    	if(q==1)
    	{
    		cout<<"四边形的周长为C,C="<<C<<endl<<"四边形的面积为s,s="<<s<<endl;
    	}
    } 
    
    void f1();//点菜单函数 
    void f2();//线菜单函数
    void f3();//三角形菜单 
    void f4();//四边形菜单 
    int main()
    {
    	
    	int n;
    	do
    	{
    		cout<<"__________________________________________"<<endl;
    		cout<<"                主菜单                    "<<endl;
    		cout<<"1.点菜单(对一个点进行操作)*****"<<endl; 
    		cout<<"2.线菜单(对直线进行操作)*******"<<endl; 
    		cout<<"3.三角形菜单(对三角形操作)*****"<<endl; 
    		cout<<"4.四边形菜单(对四边形操作)*****"<<endl; 
    		cout<<"0.退出主菜单*********************"<<endl; 
    		cout<<"__________________________________________"<<endl;
    		cout<<"请选择:";
    		cin>>n;
    		switch(n)
    		{
    			case 1:system ("pause"); system("cls");f1();break; 
    			case 2: system ("pause"); system("cls");f2();break; 
    			case 3: system ("pause"); system("cls");f3();break; 
    			case 4: system ("pause"); system("cls");f4();break; 
    			case 0:cout<<"退出主菜单"<<endl;system ("pause"); system("cls");break;
    			default :cout<<"输入有误!将要返回菜主单"<<endl;system ("pause");system("cls"); 
    		}		
    	}while(n!=0);
    	return 0;
    }
    
    void f1()//点菜单函数 
    {
    	Point A;//定义Point类对象A 
    	int n;
    	do
    	{
    		cout<<"__________________________________________"<<endl;
    		cout<<"                点菜单                    "<<endl;
    		cout<<"1.输入A点的坐标******************"<<endl; 
    		cout<<"2.移动A点(输入A点移动量)********"<<endl; 
    		cout<<"3.显示A点坐标(输出A点坐标)******"<<endl; 
    		cout<<"4.计算A点到原点的距离************"<<endl; 
    		cout<<"0.退出点菜单*********************"<<endl; 
    		cout<<"__________________________________________"<<endl;
    		cout<<"请选择:";
    		cin>>n;
    		switch(n)
    		{
    			case 1:A.f1();system ("pause"); system("cls");break;//输入A点的坐标,system ("pause"); system("cls");暂停和清屏函数需要用到的头文件为#include <cstdlib> 
    			case 2:A.f2();system ("pause"); system("cls");break;//移动A点(输入A点移动量)
    			case 3:A.f3();system ("pause"); system("cls");break;//显示A点坐标(输出A点坐标)
    			case 4:A.f4();system ("pause"); system("cls");break;//计算A点到原点的距离
    			case 0:cout<<"退出菜单"<<endl;system ("pause"); system("cls");break;
    			default :cout<<"输入有误!将要返回点菜单"<<endl;system ("pause");system("cls"); 
    		}	
    	}while(n!=0);
    }
    void f2()//线菜单函数
    {
    	Line A;
    	int n;
    	do
    	{
    		cout<<"__________________________________________"<<endl;
    		cout<<"                线菜单                    "<<endl;
    		cout<<"1.计算点到直线的距离。**************"<<endl; 
    		cout<<"2.计算直线的斜率。******************"<<endl; 
    		cout<<"3.判断两条直线的关系(平行/相交(交点"<<endl;
    		cout<<"坐标能够给出来并显示)/垂直)。******"<<endl; 
    		cout<<"0.退出线菜单。**********************"<<endl; 
    		cout<<"__________________________________________"<<endl;
    		cout<<"请选择:";
    		cin>>n;
    		switch(n)
    		{
    			case 1:A.f1();system ("pause"); system("cls");break; 
    			case 2:A.f2();system ("pause"); system("cls");break; 
    			case 3:A.f3();system ("pause"); system("cls");break; 
    			case 0:cout<<"退出线菜单"<<endl;system ("pause"); system("cls");break;
    			default :cout<<"输入有误!将要返回线菜单"<<endl;system ("pause");system("cls"); 
    		}	
    	}while(n!=0);
    }
    void f3()//三角形菜单
    {
    	Friangle A;
    	int n,i;
    	do
    	{
    		cout<<"__________________________________________"<<endl;
    		cout<<"               三角形菜单                 "<<endl;
    		cout<<"1.判断三点能否构成三角形。**************"<<endl; 
    		cout<<"2.判断三角形是等边,等腰或者是直角。****"<<endl; 
    		cout<<"3.计算三角形的面积。********************"<<endl;
    		cout<<"0.退出三角形菜单。**********************"<<endl; 
    		cout<<"__________________________________________"<<endl;
    		cout<<"请选择:";
    		cin>>n;
    		switch(n)
    		{
    			case 1:system ("pause"); system("cls");A.f4();i=A.f1();system ("pause"); system("cls");break; 
    			case 2:system ("pause"); system("cls");A.f2();system ("pause"); system("cls");break; 
    			case 3:system ("pause"); system("cls");A.f3();system ("pause"); system("cls");break; 
    			case 0:cout<<"退出三角形菜单"<<endl;system ("pause"); system("cls");break;
    			default :cout<<"输入有误!将要返回三角形菜单"<<endl;system ("pause");system("cls"); 
    		}	
    	}while(n!=0);
    }
    void f4()//四边形菜单
    {
    	PolyAngle A;
    	int n;
    	do
    	{
    		cout<<"__________________________________________"<<endl;
    		cout<<"                四边形菜单                "<<endl;
    		cout<<"1.判断四点能否构成四边形,并判断其是凹"<<endl; 
    		cout<<"的,还是凸的。***********************"<<endl; 
    		cout<<"2.判断四边形的形状*******************"<<endl; 
    		cout<<"3.计算四边形的面积和周长*************"<<endl; 
    		cout<<"0.退出四边形菜单*************************"<<endl; 
    		cout<<"__________________________________________"<<endl;
    		cout<<"请选择:";
    		cin>>n;
    		switch(n)
    		{
    			case 1:A.f1();system("pause"); system("cls");break;// 
    			case 2:A.f2();system("pause"); system("cls");break;//
    			case 3:A.f3();system ("pause"); system("cls");break;// 
    			case 0:cout<<"退出四边形菜单"<<endl;system ("pause"); system("cls");break;
    			default :cout<<"输入有误!将要返回四边形菜单"<<endl;system ("pause");system("cls"); 
    		}	
    	}while(n!=0);
    } 
    

    3.运行截图

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    4.源码连接

    https://download.csdn.net/download/Test_lxy/12049540

    展开全文
  • 叉乘和平行四边形面积 的关系

    千次阅读 2014-12-12 19:23:41
    、 其中的 过程解释如下
  • struct Point{//两个点相减是向量,二维向量叉乘是平行四边形面积 int x,y; Point(int _x = 0, int _y = 0) :x(_x), y(_y) {} Point operator -(const Point &amp;p)const { return Point(x - p.x, y - p.y)...
  • 求第四个点可用对角线中点的知识,两对角线对应的点相等。 #include #include #define PI acos(-1.0) int main() { int t; scanf("%d",&t); int flag=1; while(t--) { double x1,y1,x2...
  • 平行四边形 借助 transform 中的 skew 属性来实现,由于直接在div中使用,会导致内部的字体也会相应的倾斜,一种解决方案是里面的文本加一个反向的倾斜,另一种解决方案是利用为元素进行倾斜,这样内部的文本就...
  • 平行四边形是初二最难的一章,中考的影响较大 目前仍有考试做不出来的风险(不小),仍需提高绝对水平 概念 图形的旋转 旋转后的图形与原图形全等 对应点与旋转中心连线段相等 旋转...
  • 《css揭秘》笔记(八)平行四边形嵌套元素方案伪元素方案菱形基于变形的方案裁切路径方案 平行四边形 我们可以使用skew()的变形属性来矩形进行斜向拉伸。 .box1{ width: 100px; height: 50px; margin: 20px; ...
  • 定理:对于任意的四边形ABCD,其对角线AC与BD的中点分别是M,N,AB,CD的延长线交于R.验证三角形RMN的面积四边形ABCD面积的四分之一。  下面我们就用C语言来验证一下这个定理的正确性,由于计算机的精确度是有限的,...
  • 1)平行四边形对角线的中点一定相交。<=> 如果有两条不同线段的中点相交,就是一个平行四边形 2)利用点坐标求出中点的集合,离散化后求出同个中点的出现的个数k。 3)对于每一个k ,利用组合公式C(k,2)的答案...
  • 在1*1的正方形格子上给出每边的两个点,按顺序连接边的点,求这样形成的一系列四边形中最大的面积。 思路: 1. 求交点  见函数GetCrossPoint (http://blog.csdn.net/abcjennifer/article/details/7584628)...
  • /* **两直线交点 &amp;&amp; 四边形面积** ... 题意:1*1的正方形上每条边上有n个点,每相互 ... 四边形,求最大四边形面积 */ #include &lt;stdio.h&gt; #include &lt;math.h&...
  • 我们的自由思想的数学将从三角形的面积公式开始谈起,将陆续为读者推导出近百个三角形的面积公式,本文先从最常用最基本的公式讲起。在开始之前,先约定一下与三角形相关的一些量的符号记法,在以后的文章中,在没有...
  • 对角线互相平分,即AG=GC,BG=GD 3.矩形 矩形为平行四边形的特殊情况 (1) 内角关系:A=B=C=D=90 ° (2) 对角线长相等,计算公式为 : (3) 面积计算公式 :S= ab 4.菱形 菱形为平行四边形的特殊...
  • N个点求最大的四边形面积

    千次阅读 2013-08-31 20:59:01
     以O(n2)枚举每一条边,以这条边作为四边形对角线(注意:这里所说的对角线是指把四边形分成两部分的线,不考虑凹四边形可能出现的两个点在对角线同一侧的情况),以O(n)枚举每一个点,判断是在对角线所在直线的...
  • 题目要求四边形面积,然后这个四边形我们知道了对角线的夹角,而且两条对角线还是一样长的!那么根据四边形面积公式 S=12absinα(a,bS=\frac{1}{2}absinα(a,bS=21​absinα(a,b为对角线长度 ,α,α,α为对角线夹角...
  • 四边形对角线的交点; 为边的延长线的交点。那么你会惊奇地发现, 十分特殊: 任意一个顶点的对边就是它关于圆锥曲线的极线。这个三角形叫做 自极三点形。 这个性质实际上除了美妙并没有太大的用处,但是在原图...
  • 题目大意:给出 n ( n <= 2000 ) 个点,求出所有不同的锐角三角形的面积 ...锐角三角形:三个都是锐角,计算出的贡献为 3 倍的面积 直角三角形:一个为直角,其余两个都为锐角,直角的提供-2 倍的贡献.
  • 事实再一次证明:本小菜在计算几何上就是个渣啊,唉,,, 题意:平面上n个点(n<... 以O(n2)枚举每一条边,以这条边作为四边形对角线(注意:这里所说的 对角线是指把四边形分成两部分的线,不考虑凹四边形可...
  • 5.3 平行性与摄像机内参数5.3.1 平行四边形的不变量与射影平行四边形的不变量 5.3.1 平行四边形的不变量与射影 平行四边形的不变量
  • C中计算矩形的面积

    千次阅读 2019-02-01 22:01:54
    对角线相等的平行四边形是矩形。矩形是一种特殊的平行四边形,正方形是特殊的矩形。 矩形也叫长方。 面积为:area=a*b */ #include &lt;stdio.h&gt; int main() { float a,b,area; printf("请你输入...
  •  四边形面积可由两个三角形面积相加而得,这里使用叉积,因为三角形的两个向量边叉乘的结果为其所形成的平行四边形面积,所以三角形面积为1/2×向量边1 x 向量边2  见函数GetArea() Code: ...
  • 本期内容有哪些○听一听:周卫东《数学教学,需要沉潜》○读一读:梳理中关联,变式中提升○想一想:金表被盗轻轻松松听听书坚持阅读八分钟梳理中关联,变式中提升——《“多边形的面积”整理与复习》教学实践单元...
  • SSL1715计算面积

    2017-03-10 18:37:53
    一次老师给呆子留了一个很简单的题目,已知平面上一平行四边形的四个顶点,求这个平行四边形面积。但粗心的呆子却只记了三个点的坐标,因此呆子现在和郁闷。你现在能帮助呆子计算一下老师留给呆子的平行四边形可能...
  • 直角三角形的判定定理:①有两个互余的三角形是直角三角形②如果三角形两边的平方和等于第三边的平方,那么这个三角形是直角三角形3.互逆命题:在两个命题中,如果一个命题的条件和结论分别是另一个命题的结论和...
  • ​→→→数学大师:shuxueds1一元一次方程△=b2-4ac当△>...② 平行四边形不相邻的两个顶点连成的线段叫他的对角线。③ 平行四边形的对边/对角相等。④平行四边形对角线互相平分。菱 形 ①一组邻边相等...
  • 二维向量叉乘,得到的新的向量是长度为原来两向量的组成的平行四边形面积,方向为右手法则确定出来的方向。需要用三维中的行列式来求证二维向量如下:(可设j为(0,0,1),由a,b求出来的向量为(0...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,087
精华内容 834
关键字:

平行四边形的对角线面积