/**
在x-y平面上给定四个顶点ABCD,确定它是否是一个矩形
*/
#include<iostream>
class vector2D
{
public:
vector2D(){}
vector2D(float a,float b)
{ x=a; y=b; }///内联(1)
vector2D difference(vector2D& a);
float inner(vector2D& a);
bool isPerpendicular(vector2D& a);
bool nonzero()///内联(2)自动内联
{ return (x!=0.0||y!=0.0); }
void display();
private:
float x,y;
};
float vector2D::inner(vector2D&a)
{ return(x*a.x + y*a.y); }
void vector2D::display()
{ std::cout<<"("<<x<<","<<y<<")"; }
vector2D vector2D::difference(vector2D& v){
vector2D tmp;
tmp.x = x-v.x;
tmp.y = y-v.y;
return tmp;
}
inline float ABS(float x) { return (x>0?x:-x); }
bool vector2D::isPerpendicular(vector2D& v){
return (nonzero()&&v.nonzero()&&ABS(inner(v))<0.00000001);
}
vector2D getVec(int i){
float x,y;
std::cin>>x>>y;
return vector2D(x,y);
}
int main()
{
vector2D p[4];
for(int i=0;i<4;i++)
p[i]=getVec(i);
vector2D u=p[0].difference(p[3]);
vector2D v;
for(int i=0;i<3;i++){
v=p[i+1].difference(p[i]);
if(!u.isPerpendicular(v))
{
std::cout<<"Not a rectangle.\n";
return -1;
}
u=v;
}
std::cout<<"Yes\n";
return 0;
}
vector2D向量实例
原创wx5915393277dca ©著作权
©著作权归作者所有:来自51CTO博客作者wx5915393277dca的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
向量(vector)
向量(vector)
标量 段长度 记法 -
【C++/STL】2. vector向量
vector与常用的数组类似,占用连续内存空间,对随机存取支持
STL vector 初始化 构造函数 迭代器 -
C++类的实例:一个向量类(Vector)
在数学中,向量(也称为欧几里得向量、几何向量、矢量),指具有大小和方向的量。本例实现一个二维
C 类实例:向量Vector 构造函数 析构函数 #include -
Cocos2d-x Vector——vector iterators incompatible迭代器 c++11 javascript 2d
-
linux kafka 离线安装
linux虚拟机搭建Kafka集群环境 文章目录linux虚拟机搭建Kafka集群环境一、环境准备一、Kafka安装1、打开三台虚拟机2、用Xshell连接,并选择【发送键输入到所有会话】3、在【/opt】下创建kafka文件夹4、下载kafka [官网下载地址](http://kafka.apache.org/downloads)5、解压【kafka_2.13-2.8.0.tgz】6、修改【se
linux kafka 离线安装 搭建Kafka集群环境 linux搭建Kafka集群 kafka zookeeper