小编Bre*_*ale的帖子

使用水平和垂直角度以及坡度距离计算3D点坐标

我试图学习如何使用原点的XYZ坐标,水平和垂直角度以及3d距离来计算点的XYZ坐标.我可以简单地通过将点投影到2D平面上来进行计算,但是在3D中有更简单的方法吗?

我试图了解测量全站仪如何基于测量位置,测量到新点的3d(坡度)距离以及测量到新点位置的测量水平和垂直角度来计算新点位置.

谢谢,

Ë

3d trigonometry coordinates

3
推荐指数
1
解决办法
7089
查看次数

std :: function与std :: bind完美结合-但是为什么呢?

我正在使用a std::uniform_int_distribution生成素数(p)。我将分发对象放在一个匿名的命名空间中-对于成年人来说似乎是C ++的“静态链接” ...

namespace
{
    // a more pedantic range: [2, 18446744073709551557]
    std::uniform_int_distribution<uint64_t> p_dist {2};

    std::mt19937 rng; // (sufficient IV states for uniqueness)
}
Run Code Online (Sandbox Code Playgroud)

请注意,在可移植代码允许的范围内,我尽可能彻底地播种了Mersenne Twister。不过,这对于这个问题并不是很重要。这只是为了确保读者可以正确使用随机工具:

std::seed_seq::result_type data[rng.state_size];
std::random_device rdev;

std::generate_n(data, rng.state_size, std::ref(rdev));
std::seed_seq rng_seed (data, data + rng.state_size);
rng.seed(rng_seed);
Run Code Online (Sandbox Code Playgroud)

这非常方便,因为我使用确定性u64_prime(p)函数,(7) bases可以确定是否(p)为质数:

uint64_t p;
while (!u64_prime(p = p_dist(rng)))
    ;
Run Code Online (Sandbox Code Playgroud)

现在,我创建一个std::function对象:

std::function<uint64_t()> zp_rng = std::bind(
    decltype(p_dist){0, p - 1}, std::ref(rng));
Run Code Online (Sandbox Code Playgroud)

此函数:zp_rng()可以被调用以返回中的随机数Z(p)。也就是说,将分发对象用于:[0, p - 1] …

c++ stdbind c++11 std-function c++17

3
推荐指数
1
解决办法
248
查看次数

如何在 macOS 上找到 C 头文件 errno.h 的位置?

我是 C 语言的新手,正在尝试查看头文件的源代码errno.h

我怎样才能:

  1. 找出头文件在我的计算机上的存储位置?
  2. 查看头文件的来源?

我试过的

根据这个答案gcc --print-file-name=errno.h在我的$HOME目录中运行只会输出errno.h.

这个答案,运行cpp -dM /usr/include/errno.h | grep 'define E' | sort -n -k 3输出:

clang: error: no such file or directory: '/usr/include/errno.h'
clang: error: no input files
Run Code Online (Sandbox Code Playgroud)

这个答案,运行clang -E /usr/include/errno.h输出:

clang: error: no such file or directory: '/usr/include/errno.h'
clang: error: no input files
Run Code Online (Sandbox Code Playgroud)

我知道有效的一种解决方案是 running sudo find / -name "errno*.h" -type f。但是,这会返回许多结果。我想知道是否有某种编程方式可以使用 …

c macos errno header-files macos-catalina

3
推荐指数
1
解决办法
360
查看次数

修改make distclean,使其删除.deps或*~备份文件

make distclean在我的项目上做了一个,认为它真的会删除所有内容,但它留下了一个.deps目录,并留下了我所有的编辑器备份文件。

我想扩充我的“Makefile.am in my project directory so that these are also deleted, but it's not clear to me how to do that. What additional things should I put inMakefile.am”,以便删除以下内容:

.deps/
./autom4te.cache/
*~ (in every directory)
{project-name}-{majorversion}.{minorversion}.{release}. (releases that were attempted to be built)
Run Code Online (Sandbox Code Playgroud)

automake autoconf autotools

2
推荐指数
1
解决办法
1036
查看次数

'if((mask | u)==u)' 是什么意思?

这就是maximum sum子集问题的递推关系。

完整的代码是:

if ((mask | u) == u)
    dp[u] = max(max(0, dp[u ^ mask] + array[I], dp[u]);
Run Code Online (Sandbox Code Playgroud)

下面的 if 语句究竟是什么意思?

if((mask | u) == u)
Run Code Online (Sandbox Code Playgroud)

先感谢您!

c++ if-statement bitwise-operators

2
推荐指数
1
解决办法
127
查看次数

AVR微控制器

我想写MIPS汇编代码.atmel avr微控制器是否支持MIPS(就像PIC微控制器一样)或者我必须使用avr汇编.

assembly avr mips pic

1
推荐指数
1
解决办法
1047
查看次数

为什么 gcc 链接器看不到我的析构函数?

我正在尝试按照https://code.google.com/p/wkhtmltopdf/wiki/compilation 中的说明在 Linux 机器上编译 wkhtmltopdf-qt 。

现在我被链接器拒绝链接卡住了。它打印了几个错误,但引起我注意的是:

/home/ubuntu/wkhtmltopdf-qt/lib/libwebcore.a(AccessibilityRenderObject.o): In function `WebCore::AccessibilityRenderObject::~AccessibilityRenderObject()':
AccessibilityRenderObject.cpp:(.text._ZN7WebCore25AccessibilityRenderObjectD0Ev+0x5): undefined reference to `WebCore::AccessibilityRenderObject::~AccessibilityRenderObject()'
Run Code Online (Sandbox Code Playgroud)

这至少可以说很奇怪。首先,因为链接器声称析构函数试图引用自身和 next - 因为它没有这样做!疯狂的东西......无论如何,一切似乎都被定义了。请注意:

ubuntu@ip-10-245-78-162:~$ nm --defined-only -C -A /home/ubuntu/wkhtmltopdf-qt/lib/libwebcore.a | grep ~AccessibilityRenderObject
/home/ubuntu/wkhtmltopdf-qt/lib/libwebcore.a:AccessibilityRenderObject.o:0000000000000000 T WebCore::AccessibilityRenderObject::~AccessibilityRenderObject()
/home/ubuntu/wkhtmltopdf-qt/lib/libwebcore.a:AccessibilityRenderObject.o:0000000000000000 T WebCore::AccessibilityRenderObject::~AccessibilityRenderObject()
/home/ubuntu/wkhtmltopdf-qt/lib/libwebcore.a:AccessibilityRenderObject.o:0000000000000000 T WebCore::AccessibilityRenderObject::~AccessibilityRenderObject()
ubuntu@ip-10-245-78-162:~/wkhtmltopdf-qt/src/3rdparty/webkit/Source/WebCore/accessibility$
Run Code Online (Sandbox Code Playgroud)

接下来,在文件 AccessibilityRenderObject.cpp 中:

#include <wtf/unicode/CharacterNames.h>

using namespace std;

namespace WebCore {

using namespace HTMLNames;

AccessibilityRenderObject::AccessibilityRenderObject(RenderObject* renderer)
    : AccessibilityObject()
    , m_renderer(renderer)
    , m_ariaRole(UnknownRole)
    , m_childrenDirty(false)
    , m_roleForMSAA(UnknownRole)
{
    m_role = determineAccessibilityRole();

#ifndef NDEBUG
    m_renderer->setHasAXObject(true);
#endif
}

AccessibilityRenderObject::~AccessibilityRenderObject()
{
    ASSERT(isDetached());
} …
Run Code Online (Sandbox Code Playgroud)

c++ linker gcc

1
推荐指数
1
解决办法
1120
查看次数

消除模板函数特化的歧义 - 值与引用

这个问题需要一些上下文 -如果您感到不耐烦,请跳过换行符...我有一个Vector-3,4根据Matrix-3,4模板专业化定义的库;即,Vector<n>Matrix<n>是在 中定义的Matrix.hh,而非平凡的实现(例如,矩阵乘法、矩阵求逆)在Matrix.ccfor中有显式的专门化或实例化N = {3,4}

这种方法效果很好。理论上,应用程序可以实例化 a Matrix<100>,但无法乘法或反转矩阵,因为标头中没有可见的实现模板。仅N = {3,4}实例化于Matrix.cc

最近,我一直在添加健壮的方法来补充任何涉及内积的运算 - 包括矩阵乘法、向量的矩阵变换等。大多数 3D 变换(投影/方向)的条件相对良好,任何微小的精度误差都会受到影响。这不是问题,因为共享顶点/边会产生一致的光栅化。

有些运算必须具有数值鲁棒性。我对 GPU 在渲染时如何进行点积和矩阵运算无能为力;但我不能让控制/相机参数阻塞在有效的几何体上 - 并且内积因病态消除误差而臭名昭著,因此稳健的方法使用补偿求和、乘积、点积等。



Vector这对于以下情况的内积来说效果很好Matrix.hh

////////////////////////////////////////////////////////////////////////////////
//
// inner product:


template <int n> float
inner (const GL0::Vector<n> & v0, const GL0::Vector<n> & v1)
{
    float r = v0[0] * v1[0];

    for (int i = 1; …
Run Code Online (Sandbox Code Playgroud)

c++ templates casting pass-by-reference c++17

1
推荐指数
1
解决办法
63
查看次数