c++编写一个点类Point,功能包括输出点的坐标,移动到新位置及输出它与另一个点的距离

c++编写一个点类Point,功能包括输出点的坐标,移动到新位置及输出它与另一个点的距离,第1张

该类可以提供移动,求到另一点的距离,获取X坐标和Y坐标等 *** 作,也可以设置X坐标和Y坐标的值。要求有拷贝构造函数。数据成员为X坐标和Y坐标。

源代码如下

using namespace std;

class Point{

public:

Point(); //不带参数构造函数

Point(int X, int Y); //带参数的构造函数

Point(const Point &p); //拷贝构造函数;

int getX(); //获取横坐标

int getY(); //获取纵坐标

void setX(int iX); //设置横坐标

void setY(int iY); //设置纵坐标

float distance(Point p1, Point p2); //计算两点的距离protected:

private:

int x; //横坐标

int y; //纵坐标

};

int main()

{

Point pos;

Point pt(10, 10);

Point pts(pt);

cout << "获取pos的坐标值" << endl

cout << "X:" << posgetX() << endl;

cout << "Y:" << posgetY() << endl;

possetX(20);

possetY(20);

cout << "获取pos的设置后的坐标值" << endl;

cout << "X:" << posgetX() << endl;

cout << "Y:" << posgetY() << endl;

cout << "获取pt的坐标值" << endl;

cout << "X:" << ptgetX() << endl;

cout << "Y:" << ptgetY() << endl;

cout << "获取pts的坐标值" << endl;

cout << "X:" << posgetX() << endl;

cout << "Y:" << posgetY() << endl;

cout << "输出pos与pt之间的距离" << endl;

cout << "X:" << posdistance(pos, pt) << endl;

return 0;

}

扩展资料

一个点类Point,有2个私有数据成员x,y代表点坐标的源代码

include

#include

using namespace std;

class Point

{

public:

Point(int a,int b):x(a),y(b){cout<<"初始化点类的一个对象\n";}

~Point(){cout<<"回收点类的内存空间\n";}

void show()

{cout<<"这个点的坐标为:"<<"("< double distance(Point &p){return sqrt((py-y)

(px-y)+(px-x)(px-x));}

private:

int x;

int y;

};

int main()

{

Point a(0,0);

Point b(1,1);

cout< return 0;

}

快三年了,在写了四篇文章,关于Cesium的基本都是水一下,不是不想写,一是没时间,二来确实比较懒,关于Cesium已经一年多没有看过了,最多也就关注一下官网的更新内容,对于Cesium深入了解还真没有下功夫。

最近公司业务调整,手头的业务也停掉了,只剩下维护了,也没有继续待着的意义了,趁着换工作的空,整理一下以前抄过、请教过、写过的一些东西吧,不确定能写多少,就简单记录一下吧。

Ceisum本身有一个clipPlane可以进行裁剪,但是不支持多边形裁剪,想要支持多边形裁剪也要费一番功夫。

多边形裁剪的主要原理:

一、构造裁剪多边形;

二、将构造多边形的定点归化到模型局部坐标系,并获取模型Rectangle,记录并传递给片元着色器;

三、将多边形渲染到到一张构造的纹理上,给多边形一个绘制的颜色,并将纹理赋值给片元着色器;

四、在顶点着色器中把从attribute获取到的定点传递给片元着色器,如

gl_Position = czm_projectionu_modelViewMatrix viewPos; //投影矩阵模型视图矩阵顶点坐标

中的viewPosxyz;

五、在片元着色器中,根据(四)中传递过来的顶点,判定该顶点是否在(二)中的rectangle中,若在,则计算该顶点在(三)中纹理的uv坐标,用texture2D(texture,uv)获取当前顶点的color值,若不为空,则继续,若为空则discard并返回。

通过以上步骤就可以实现以多边形为边界的模型裁剪。

主要利用://在指定位置画图

gDrawImage(image, new SystemDrawingRectangle(0, 0, bitmapWidth, bitmapHeight),

new SystemDrawingRectangle(0, 0, imageWidth, imageHeight),

SystemDrawingGraphicsUnitPixel);

image:你的原图,

SystemDrawingRectangle:位置与长宽,根据自己需要设置!

--------------------------------------------------------------------------------------------------------------

实例如下:

public void MakeSmallImg(string filePath, string saveImg)

{

//从文件取得对象

SystemDrawingImage image = SystemDrawingImageFromFile(filePath, true);

//取得大小

SystemDrawingSize size = new SystemDrawingSize((int)imageWidth, (int)imageHeight);

//新建一个bmp

SystemDrawingImage bitmap = new SystemDrawingBitmap(sizeWidth, sizeHeight);

//新建一个画板

SystemDrawingGraphics g = SystemDrawingGraphicsFromImage(bitmap);

//设置高质量插值法

gInterpolationMode = SystemDrawingDrawing2DInterpolationModeDefault;

//设置高质量,低速度呈现平滑程度

gSmoothingMode = SystemDrawingDrawing2DSmoothingModeDefault;

//清空一下画布

gClear(SystemDrawingColorWhite);

//在指定位置画图

gDrawImage(image, new SystemDrawingRectangle(0, 0, bitmapWidth, bitmapHeight),

new SystemDrawingRectangle(0, 0, imageWidth, imageHeight),

SystemDrawingGraphicsUnitPixel);

///文字水印

//SystemDrawingGraphics G=SystemDrawingGraphicsFromImage(bitmap);

//SystemDrawingFont f=new Font("宋体",10);

//SystemDrawingBrush b=new SolidBrush(ColorBlack);

//GDrawString("myohmine",f,b,10,10);

//GDispose();

///水印

//SystemDrawingImage copyImage = SystemDrawingImageFromFile(SystemWeb>

以上就是关于c++编写一个点类Point,功能包括输出点的坐标,移动到新位置及输出它与另一个点的距离全部的内容,包括:c++编写一个点类Point,功能包括输出点的坐标,移动到新位置及输出它与另一个点的距离、Cesium 3Dtiles模型多边形裁剪简单整理、怎样用 c# GDI+ 截取一张图片的一部分,然后再替换另一张图片的一部分啊求代码~!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9350232.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存