gpt4 book ai didi

c++ - 子类特征类型

转载 作者:太空宇宙 更新时间:2023-11-04 11:55:13 24 4
gpt4 key购买 nike

我正在寻找一些用于 2D 和 3D 线性几何操作的库(2D 线之间、3D 线与平面之间的交点,诸如此类),我遇到了 Eigen这看起来又酷又快、可扩展、易于包含、多平台等。

我习惯于考虑具有 x、y、z 属性和 Eigen 数据类型的 vector 中的 2/3D 几何,但我没有找到它们:

#include "Eigen/Core"

...

Eigen::Vector2d p1;
double x = p1[0];
double y = p1[1];

为了我个人的方便,我想继承 Vector2d 添加一些舒适的方法,比如

Vec2D::x() { return this[0]; }
Vec2D::set(double x, double y) { this[0]=x; this[1]=y; }
....

或者类似的方法。我不是 C++ 经验丰富的程序员,所以我想问这是否是正确的方法,以及如何处理模板..

最佳答案

Vector2d 在 Eigen 中已经有这些方法:

const T& x();
T& x();
const T& y();
T& y();

Vector2d 都存在。由于它们返回引用,因此您也可以使用它来设置值:

Eigen::Vector2d v2d;
v2d.x() = 1;
v2d.y() = 2;

请参阅 Eigen 文档 here .

关于c++ - 子类特征类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16459502/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com