小编Fre*_*red的帖子

计算从点到线段和线段到线段的平均距离

我正在寻找一种算法来计算3D中一个点和一个线段之间的平均距离.因此,给定代表线段AB的两个点A(x1,y1,z1)和B(x2,y2,z2),以及第三个点C(x3,y3,z3),AB上每个点之间的平均距离是多少指向C?

我也对两个线段之间的平均距离感兴趣.因此,给定AB段和CD段,从AB上的每个点到CD上最近点的平均距离是多少?

我对我尝试的网络搜索没有任何运气,所以任何建议都将不胜感激.

谢谢.

math geometry wolfram-mathematica

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

多个SFINAE规则

在阅读了这个问题的答案之后,我了解到SFINAE可以用来根据类是否具有某个成员函数来选择两个函数.它等同于以下内容,只是将if语句中的每个分支拆分为重载函数:

template<typename T>
void Func(T& arg)
{
    if(HAS_MEMBER_FUNCTION_X(T))
        arg.X();
    else
        //Do something else because T doesn't have X()
}
Run Code Online (Sandbox Code Playgroud)

template<typename T>
void Func(T &arg, int_to_type<true>); //T has X()

template<typename T>
void Func(T &arg, int_to_type<false>); //T does not have X()
Run Code Online (Sandbox Code Playgroud)

我想知道是否有可能扩展SFINAE来做多个规则.一些与此相当的东西:

template<typename T>
void Func(T& arg)
{
    if(HAS_MEMBER_FUNCTION_X(T))                //See if T has a member function X  
        arg.X();
    else if(POINTER_DERIVED_FROM_CLASS_A(T))    //See if T is a pointer to a class derived from class A
        arg->A_Function();              
    else if(DERIVED_FROM_CLASS_B(T))            //See if T …
Run Code Online (Sandbox Code Playgroud)

c++ templates sfinae

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

标签 统计

c++ ×1

geometry ×1

math ×1

sfinae ×1

templates ×1

wolfram-mathematica ×1