平面坐标点类

本文介绍了一个使用C++实现的点类,包括输入、输出、两点间距离计算、到原点距离计算及关于坐标轴和原点的对称点计算。通过实例演示了如何使用该类进行点的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

*
* Copyright (c) 2012, 烟台大学计算机学院
* All rights reserved.
* 作    者:庄子豪
* 完成日期:2013 年  4月5日
* 版 本 号:v1.0
* 输入描述:
* 问题描述:
* 程序输出:
* 问题分析:
 *算法设计:

#include <iostream>

#include<cmath>

using namespace std;

class CPiont
{
    private:
        double x;//横坐标
        double y;//纵坐标
    public:
        CPiont(double xx=0,double yy=0);
        double Distance(CPiont p)const;//两点之间的距离(一个是当前点,另一点为参数p)
        double Distance0()const;//到原点的距离
        CPiont SymmetricAxis(char style)const;//style取X,Y,O分别表示按X,Y轴原点对称
        void input();//以x,y的形式输入坐标点
        void output();//以(x,y)的形式输出坐标点
};
CPiont::CPiont(double xx,double yy)
{
    x=xx;
    y=yy;
}
double CPiont::Distance(CPiont p)const
{
    double d;
    d=sqrt((p.x-x)*(p.x-x)+(p.y-y)*(p.y-y));
    return d;
}
double CPiont::Distance0()const
{
    double d;
    d=sqrt(x*x+y*y);
    return d;
}
CPiont CPiont::SymmetricAxis(char style)const
{
    CPiont p(this->x,this->y);
    switch(style)
    {
        case 'x':
            p.y=-y;
            break;
        case 'y':
            p.x=-x;
            break;
        case 'o':
            p.x=-x;p.y=-y;
            break;
    }
  return p;

}
void CPiont::input()
{
    char c;
    cout<<"请输入坐标(格式:x,y):";
    while(1)
    {
        cin>>x>>c>>y;
        if(c==',')
        {
            break;
        }else{
            cout<<"对不起,非法格式,请重新输入!";
        }
    }
}
void CPiont::output()
{
    cout<<"("<<x<<","<<y<<")"<<endl;
}
int main()
{
    double d;
    CPiont p1,p2,p;
    cout<<"第一个点p1:"<<endl;
    p1.input();
    cout<<"第二个点p2:"<<endl;
    p2.input();
    d=p1.Distance(p2);
    cout<<"两点间的距离为"<<d<<endl;
    d=p1.Distance0();
    cout<<"p1到原点的距离为:"<<d<<endl;
    d=p2.Distance0();
    cout<<"p2到原点的距离为:"<<d<<endl;
    p=p1.SymmetricAxis('x');
    cout<<"p1关于x轴的对称点为:";
    p.output();
    p=p1.SymmetricAxis('y');
    cout<<"p1关于y轴的对称点为:";
    p.output();
    p=p1.SymmetricAxis('o');
    cout<<"p1关于原点的对称点为:";
    p.output();
    return 0;
}


 

内容概要:本文详细介绍了扫描单分子定位显微镜(scanSMLM)技术及其在三维超分辨体积成像中的应用。scanSMLM通过电调透镜(ETL)实现快速轴向扫描,结合4f检测系统将不同焦平面的荧光信号聚焦到固定成像面,从而实现快速、大视场的三维超分辨成像。文章不仅涵盖了系统硬件的设计与实现,还提供了详细的软件代码实现,包括ETL控制、3D样本模拟、体积扫描、单分子定位、3D重建和分子聚分析等功能。此外,文章还比较了循环扫描与常规扫描模式,展示了前者在光漂白效应上的优势,并通过荧光珠校准、肌动蛋白丝、线粒体网络和流感A病毒血凝素(HA)蛋白聚的三维成像实验,验证了系统的性能和应用潜力。最后,文章深入探讨了HA蛋白聚与病毒感染的关系,模拟了24小时内HA聚的动态变化,提供了从分子到细胞尺度的多尺度分析能力。 适合人群:具备生物学、物理学或工程学背景,对超分辨显微成像技术感兴趣的科研人员,尤其是从事细胞生物学、病毒学或光学成像研究的科学家和技术人员。 使用场景及目标:①理解和掌握scanSMLM技术的工作原理及其在三维超分辨成像中的应用;②学习如何通过Python代码实现完整的scanSMLM系统,包括硬件控制、图像采集、3D重建和数据分析;③应用于单分子水平研究细胞内结构和动态过程,如病毒入侵机制、蛋白质聚等。 其他说明:本文提供的代码不仅实现了scanSMLM系统的完整工作流程,还涵盖了多种超分辨成像技术的模拟和比较,如STED、GSDIM等。此外,文章还强调了系统在硬件改动小、成像速度快等方面的优势,为研究人员提供了从理论到实践的全面指导。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值