c语言二维平面点的抽象(ADT练习)定义二维平面的点,并提供访问接口 实现直角坐标、极坐标的接口(使用atan2(y,x)函数)
时间: 2024-09-08 08:02:58 浏览: 118
在C语言中,我们可以创建一个抽象数据类型(Abstract Data Type,简称ADT)来表示二维平面的点。这个ADT可以包含一个点的位置信息,以及用于处理直角坐标和极坐标转换的接口。下面是一个简单的示例:
```c
#include <stdio.h>
#include <math.h>
// 定义结构体 Point 表示二维平面点
typedef struct {
double x; // 直角坐标x轴值
double y; // 直角坐标y轴值
} Point;
// 定义访问接口
void set_point(Point* p, double x, double y) {
p->x = x;
p->y = y;
}
double get_x(const Point* p) {
return p->x;
}
double get_y(const Point* p) {
return p->y;
}
// 极坐标到直角坐标的转换接口
Point* polar_to_cartesian(double r, double theta) {
Point* cart = (Point*)malloc(sizeof(Point));
cart->x = r * cos(theta);
cart->y = r * sin(theta);
return cart;
}
// 直角坐标到极坐标的转换接口
void cartesian_to_polar(const Point* cart, double* r, double* theta) {
*r = sqrt(cart->x * cart->x + cart->y * cart->y);
*theta = atan2(cart->y, cart->x); // 使用atan2函数获取角度
}
//
阅读全文