Boost矩阵矩阵产品定义

问题描述

这是我正在运行或尝试运行的示例代码。长话短说,它不能按预期工作。

import * as i0 from "@angular/core";
import * as i1 from "./myComponentInLib.component";
import * as i2 from "@angular/common";
import * as i3 from "@fortawesome/angular-fontawesome";
import * as i4 from "@angular/router";
import * as i5 from "angular-svg-icon";

出现以下错误

#include <iostream>

#include <boost/geometry/geometries/point_xy.hpp>
#include <boost/geometry/strategies/transform/matrix_transformers.hpp>
#include <boost/numeric/ublas/matrix_expression.hpp>

namespace bg = boost::geometry;
namespace trans = bg::strategy::transform;

typedef bg::model::d2::point_xy<double> point;

int main()
{
    trans::translate_transformer<double,2,2> translate(0.0,1.0);
    trans::rotate_transformer<bg::degree,double,2> rotate(90);

    trans::matrix_transformer<double,2> translateRotate(
         boost::numeric::ublas::prod(rotate.matrix(),translate.matrix())
         //rotate.matrix() * translate.matrix()
        );

    point p;
    translateRotate.apply(point(0,0),p);
    std::cout << bg::get<0>(p) << " " << bg::get<1>(p) << std::endl;
}

基本上有很多。为什么不接受?我是否需要将qvm转换为矩阵表达式?如果是,怎么办? 我想将来使用axpy_prod,但是如果这样做不起作用,那将毫无意义。

解决方法

对问题进行了深入的修订后,我得出的结论是,我的问题没有想要的答案。我曾经做过的事情都是这样。

问题在于translate_transformerrotate_transformer来自升压QVM,而prod函数来自uBlas库。随着boost 1.64的开始,人们对如何使用boost QVM和uBlas进行了改变,并且将它们分开。基本上,在uBlas中使用QVM矩阵的支持已消失。

在这里我必须要批评。我对升压的知识不好,所以可能有一些我不知道的正确使用方法。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...