c++ - 如何在 c++ 中使用 x 和 y 值找到圆和矩形的计算几何?
问题描述
我是 C++ 的初学者,我的任务是在 C++ 中找到某些圆形和矩形的几何形状。我的问题是我不知道如何在头文件或源文件中设置参数,我不想要解决方案,我想更好地了解如何设置功能。
每个函数及其参数如下:
GetCircumference(xc: double, yc: double, xe: double, ye: double): double
参数:
xc: double, 圆心的 x 值,
yc: double, 圆心的 y 值,
xe:双精度值,圆边上点的 x 值,以及
ye: double, 圆边上点的 y 值
– 返回:表示圆的周长的浮点值,该圆以 (xc, yc) 为中心,第二个点位于边缘 (xe, ye)。
- GetVolume(xc: double, yc: double, xe: double, ye: double): double
参数:
xc: double, 圆心的 x 值,
yc: double, 圆心的 y 值,
xe:双精度值,圆边上点的 x 值,以及
ye: double, 圆边上点的 y 值
– 返回:表示圆的体积的浮点值,以 (xc, yc) 为中心,边缘有第二个点 (xe, ye)。
GetPerimeter(xll:双,yll:双,xur:双,yur:双):双
参数:
xll:double,矩形左下点的x值,
yll:double,矩形左下点的y值,
xur:double,矩形右上角的x值,和
yur: double, 矩形右上角的 y 值
– 返回:表示矩形周长的浮点值
GetDistanceSquared(x1:双,y1:双,x2:双,y2:双):双
参数:
x1:双精度,点 1 的 x 值,
y1:双精度,点 1 的 y 值,
x2:双精度,点 2 的 x 值,以及
y2:双精度,点 2 的 y 值
– 返回:表示点 1 和 2 之间的平方距离的浮点值。
GetDistance(x1:双,y1:双,x2:双,y2:双):双
参数:
x1:双精度,点 1 的 x 值,
y1:双精度,点 1 的 y 值,
x2:双精度,点 2 的 x 值,以及
y2:双精度,点 2 的 y 值
– 返回:表示点 1 和 2 之间距离的浮点值。
comp_geo.h:
/*comp_geo.h*/
double GetCircumference(double xc, double yc, double xe, double ye);
double GetVolume(double, double, double, double);
double GetPerimeter(double, double, double, double);
double GetDistanceSquared(double, double, double, double);
double GetDistance(double, double, double, double);
comp_geo.cc:
/*comp_geo.cc*/
#include <cmath>
#include "comp_geo.h"
double GetCircumference(double xc, double yc, double xe, double ye) {
double pi = 3.14159265358;
double r = sqrt(pow((xe - xc), 2) + pow((ye - yc), 2));
double c = 2 * pi * r;
return c;
}
double GetVolume(double, double, double, double) {
return 0.0;
}
double GetPerimeter(double, double, double, double) {
return 0.0;
}
double GetDistanceSquared(double, double, double, double) {
return 0.0;
}
double GetDistance(double, double, double, double) {
return 0.0;
}
这是我们为完成此任务而获得的测试文件:
测试.cc:
/*test.cc*/
#include <iostream>
using std::cout;
using std::endl;
#include "comp_geo.h"
bool TestGetCircumference() {
const double expected = 0.0;
double actual = GetCircumference(0.0, 0.0, 0.0, 0.0);
if(actual != expected) {
cout << "Expected: " << expected << ", Actual: " << actual << endl;
return false;
}
return true;
}
bool TestGetPerimeter() {
const double expected = 0.0;
double actual = GetPerimeter(0.0, 0.0, 0.0, 0.0);
if(actual != expected) {
cout << "Expected: " << expected << ", Actual: " << actual << endl;
return false;
}
return true;
}
bool TestGetDistanceSquared() {
const double expected = 0.0;
double actual = GetDistanceSquared(0.0, 0.0, 0.0, 0.0);
if(actual != expected) {
cout << "Expected: " << expected << ", Actual: " << actual << endl;
return false;
}
return true;
}
bool TestGetDistance() {
const double expected = 0.0;
double actual = GetDistance(0.0, 0.0, 0.0, 0.0);
if(actual != expected) {
cout << "Expected: " << expected << ", Actual: " << actual << endl;
return false;
}
return true;
}
int main(int argc, char* argv[]) {
cout << "TestGetCircumference" << endl;
if (!TestGetCircumference())
return 1;
cout << "TestGetPerimeter" << endl;
if (!TestGetPerimeter())
return 1;
cout << "TestGetDistanceSquared" << endl;
if (!TestGetDistanceSquared())
return 1;
cout << "TestGetDistance" << endl;
if (!TestGetDistance())
return 1;
return 0;
}
和makefile:
生成文件:
CC = g++ # use the g++ compiler
FLAGS = -std=c++11 # compile with C++ 11 standard
FLAGS += -Wall # compile with all warnings
LINK = $(CC) $(FLAGS) -o # final linked build to binary executable
COMPILE = $(CC) $(FLAGS) -c # compilation to intermediary .o files
test : comp_geo.o test.cc
$(LINK) $@ $^
comp_geo.o : comp_geo.cc comp_geo.h
$(COMPILE) $<
clean:
@rm test comp_geo.o
此外,分级机的设置方式会查找,GetVolume
但圆圈没有音量,因此教授建议我们编写第二个函数GetArea
,调用并返回函数的值GetVolume
。
解决方案
在标题中:
someType MyFunc(someType1 var1, someType2 var2); //notice the ";" at end
someType
是函数返回的类型,例如double
. 参数也是如此。例如double MyFunc(int var1, double var2)
在源
someType MyFunc(someType1 var1, someType2 var2)
{
do something with var1, var2
return something of type 'someType'
}
推荐阅读
- php - 将表单提交到 php 文件后转到 previos 页面,其中 div 加载到特定内容
- ionic-framework - 离子选项卡内的离子段未正确显示子页面
- python - (在 Ubuntu 服务器上使用“imgkit”) wkhtmltopdf:无法连接到任何 X 显示器
- swift - Xcode:运算符后的预期表达式
- python - 线方程的错误系数
- java - 如何使用 java 代码为自定义代码创建编辑器
- java - spring webflux:如何从同步调用中发布事件以进行异步处理?
- csv - jmeter中的多个CSV数据集配置问题
- python - plotly - 将图形保存到文件时出错
- express - 为什么在使用 connect-redis 进行会话管理时,redis 密钥会随着每个请求而不断增加?