自定义--三角形类,必须累!!

本文档介绍了一个自定义的三角形类的实现过程,包括类的定义、属性和方法。通过实例运行展示了代码的功能,同时鼓励读者寻找并解决其中可能存在的错误。
/*  
* 程序的版权和版本声明部分  
* Copyright (c)2013, 烟台大学计算机学院学生  
* All rightsreserved.  
* 文件名称:score.cpp                             
* 作    者:张浩                              
* 完成日期:2013年3月22日  
* 版本号: v1.0        
* 输入描述: 
* 问题描述:设计求三角形面积和周长的类 
* 程序输出:三角形的面积和周长  
*/    
#include<iostream>
#include<Cmath>
using namespace std;
class Triangle
{
private:
	double a,b,c;//三边为私有成员数据
public:
	void getABC(double *x,double *y,double *z);//取三边的值
	double perimeter(void);//计算三角形的周长
	double area(void);//计算并返回三角形的面积

};
void Triangle::getABC(double *x,double *y,double *z)
{
	a=*x;b=*y;c=*z;
}
	
double Triangle::perimeter()
{
	double m;
	m=a+b+c;
	return m;
}
double Triangle::area(void)
{
	double s,p;
	p=(a+b+c)*0.5;
	s=sqrt(p*(p-a)*(p-b)*(p-c));
return s;
}
int main()
{
	Triangle tri1;

	double x=0,y=0,z=0;
    cout<<"请由小到大输入三角形的三条边长:"<<endl;
	cin>>x>>y>>z;
    while((x>y||x>z||y>z)&&(z<(x+y)&&y>(z-x)&&x>(z-y)))
	{
		cout<<"你输入的不符合规定或不构成三角形!重新输入吧......"<<endl;
		cin>>x>>y>>z;	
	}
	tri1.getABC(&x,&y,&z);

	cout<<"三条边为:"<<x<<'\t'<<y<<'\t'<<z<<endl;
	cout<<"三角形的周长为:"<<tri1.perimeter()<<'\n'<<"三角形的面积为:"<<tri1.area()<<endl; 
	return 0;
}


运行结果:

心得体会:这肯定和大家的不一样!!!但有错误你能发现吗???

 

### Astra-Toolbox 中的相似三角形算法 ASTRA Toolbox 主要专注于 CT 图像重建领域,提供多种基于 GPU 加速的重建算法[^3]。然而,在官方文档和支持资源中并未提及直接针对“相似三角形”的特定算法实现。 #### 相似三角形原理简介 在计算机视觉和图像处理应用中,“相似三角形”通常指的是利用几何关系来推断物体尺寸或位置的方法。这类技术广泛应用于立体匹配、相机校准等领域。但是这并不属于 ASTRA 工具箱的核心功能范围之内[^1]。 对于希望在医学成像或其他涉及射线追踪的应用场景下使用相似三角形概念的情况,可以考虑如下方式: 1. **自定义投影模型** 如果需要引入额外的几何约束条件(如相似三角形),可以在构建投影视图时调整参数设置。例如修改 `proj_geom` 参数中的角度分布以适应特殊需求。 2. **外部集成** 将 ASTRA 作为核心组件之一与其他具备更复杂几何运算能力的库相结合。比如 OpenCV 或者 PCL (Point Cloud Library),这些库能够更好地支持高级图形学操作并可能间接满足关于相似三角形的需求。 ```python import astra import numpy as np # 创建一个简单的圆柱体体积几何结构 vol_geom = astra.create_vol_geom(256, 256) # 定义平行束投影几何 angles = np.linspace(0, 2 * np.pi, 180) proj_geom = astra.create_proj_geom('parallel', 1.0, 719, angles) # 基于上述几何信息创建投影数据对象 proj_id = astra.data2d.create('-sino', proj_geom, data=np.zeros((len(angles), 719))) # 进行FBP重建 recon_alg = 'FBP' cfg = astra.astra_dict(recon_alg) cfg['VolumeDataId'] = vol_geom cfg['ProjectionDataId'] = proj_id alg_id = astra.algorithm.create(cfg) astra.algorithm.run(alg_id) rec_volume = astra.data2d.get(cfg['ReconstructionDataId']) ``` 此代码片段展示了如何使用 ASTRA ToolBox 执行基本的 FBP 重建过程,但对于具体到相似三角形的操作,则需依赖其他专门设计的相关函数库来进行补充开发[^2]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值