数学中的部分概念在C语言中的定义如下(注:为了与数学一致,有些参数使用了大写):
/* 点 */
typedef struct point
{
double x;
double y;
}Point;
/* 向量 */
typedef Point Vector;
/* 线段AB */
typedef struct segment
{
Point A;
Point B;
}Segment;
/* 直线
* 直线方程一般式:Ax+By+C=0
*/
typedef struct line
{
double A;
double B;
double C;
}Line;
/* 三角形ABC */
typedef struct triangle
{
Point A;
Point B;
Point C;
}Triangle;
/* 边平行于坐标轴的矩形 */
typedef struct rectangle
{
double xmin;
double ymin;
double xmax;
double ymax;
}Rectangle;
/* MBR:最小包容矩形 */
typedef Rectangle MBR;
/* 圆 */
typedef struct circle
{
Point centre;
double radius;
}Circle;
用某种数据结构定义的变量在赋值时同基本数据类型一样,直接赋值即可,不必对结构中的所有成员一一赋值。
例如,定义两个变量Point A, B,当将B的值赋给A时,只需A=B,这等价于A.x=B.x;A.y=B.y;
但指针变量就不同了,如Point *A, *B,当将B的值复制给A时,需要memcpy(A, B, sizeof(Point));或A.x=B.x;A.y=B.y;
A=B表示A指向了B指向的内存空间,即A和B指向同一空间,数据只有一份。
C语言平面几何1-数据类型的定义
最新推荐文章于 2022-07-21 00:12:09 发布