保存笛卡尔坐标的C程序变量?

时间:2010-08-24 18:42:42

标签: c variables

我从来没有用C编程,也没有用C ++编程一段时间,不管怎样,我还在学习。

我正在用C编写程序,并正在将MATLAB程序转换为此C程序。我有很多来自MATLAB的变量,它们是点的笛卡尔坐标,X Y Z.我可以使用内置于C的变量类型吗?我需要减去不同的点,并对它们进行其他操作。有什么建议吗?

谢谢, DemiSheep


编辑:

好的我有另一个问题。我想确保这是一个好主意。 (但首先,对于stackoverflow,这是我应该如何通过编辑原始帖子将更多信息发布到我的帖子? - 谢谢!)

问题:

我有一个具有几个特征的对象。说这是一辆汽车,汽车有几个不同的参数。

参数:

在地图上的位置 海拔高度(海平面?) 开始的位置 结束位置

我可以使用struct或union(或两者兼而有之?)将所有这些参数都放在汽车“对象”中并更新对象中的参数,就像它是C ++或Java中的自己的类一样?

如果我想计算一下汽车从起始位置到当前位置的距离,就像笛卡尔平面一样,我可以做类似的事情:

distantTraveled = car.position - car.startPosition

谢谢, DemiSheep

2 个答案:

答案 0 :(得分:6)

没有可以做你想做的内置类型。

您可能必须制作自己的小结构类型,如下所示。

typedef struct {
  double x, y, z;
} coordinate;

如果你只限于C(而不是C ++),那么你需要建立一个小函数库来操作这些数据类型。

对于它的价值,我强烈建议您四处寻找能够为您提供此类服务的图书馆。理想情况下,专门针对您正在使用的域名。

答案 1 :(得分:1)

您可以使用structtypedef struct {double x,y,z;} point;)或数组(double p[3])。

如果你想变得更聪明,你可以通过使用工会来使用两者

typedef union {
  struct {double x,y,z;} s;
  double a[3];
} point;

但这是以更多的语法访问语法为代价的:

point p;
p.a[2] = 7;
p.s.x = 5;