设为首页收藏本站

中国膜结构网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

膜结构车棚
膜结构车棚膜结构资质国产膜材 膜结构网中国膜结构协会
查看: 34|回复: 4

两个向量的向量积求解函数

[复制链接]
  • TA的每日心情
    开心
    2021-6-18 10:57
  • 签到天数: 1538 天

    [LV.Master]伴坛终老

    发表于 2021-5-28 12:14 | 显示全部楼层 |阅读模式

    void cross(double v1x,double v1y,double v1z,double v2x,double v2y,double v2z,double &nx,double &ny,double &nz)//v1^v2
    {
            nx=v1y*v2z-v1z*v2y;
            ny=v1z*v2x-v1x*v2z;
            nz=v1x*v2y-v1y*v2x;
           
    }
    回复


    http://www.mjgw.org/ 专业从事膜结构设计、制作加工、施工安装的膜结构工程服务,能够为客户提供专业的膜结构整体解决方案。做中国最好的膜结构综合服务平台。欢迎大家联系电话:198-7840-1958,QQ:463017170.
    相关关键词:膜结构车棚,膜结构车棚覆盖,膜结构车棚公司,膜结构车棚多少钱,膜结构车棚厂家,膜结构车棚价格,社区膜结构车棚,膜结构车棚膜布厂家 ,膜结构车棚哪家好,膜结构车棚多少钱一米,膜结构车棚报价,膜结构车棚哪里有,膜结构车棚定制,膜结构车棚安装,膜结构车棚设计,膜结构车棚电话,膜结构车棚加工,膜结构车棚膜布价格,膜结构车棚批发,膜结构车棚制造商,膜结构车棚生产厂家,膜结构车棚设计,膜结构车棚施工,膜结构车棚多少钱一平米,膜结构车棚订制,张拉膜车棚,张拉膜车棚覆盖,张拉膜车棚公司,张拉膜车棚多少钱,张拉膜车棚厂家,张拉膜车棚价格,社区张拉膜车棚,张拉膜车棚膜布厂家 ,张拉膜车棚哪家好,张拉膜车棚多少钱一米,张拉膜车棚报价,张拉膜车棚哪里有,张拉膜车棚定制,张拉膜车棚安装,张拉膜车棚设计,张拉膜车棚电话,张拉膜车棚加工,张拉膜车棚膜布价格,张拉膜车棚批发,张拉膜车棚制造商,张拉膜车棚生产厂家,张拉膜车棚设计,张拉膜车棚施工,张拉膜车棚多少钱一平米,张拉膜车棚订制,常用膜材品牌:德国杜肯、法国法拉利、德国海德斯、德国米乐、日本平岗、韩国秀博、比利时希运、美国赫虏伯、中国科宝、上海慧遥。

    使用道具 举报

  • TA的每日心情
    开心
    2021-6-18 10:57
  • 签到天数: 1538 天

    [LV.Master]伴坛终老

     楼主| 发表于 2021-5-28 12:14 | 显示全部楼层
    double dot(double v1x,double v1y,double v1z,double v2x,double v2y,double v2z)
    {
            double result=v1x*v2x+v1y*v2y+v1z*v2z;
            return result;
    }
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-6-18 10:57
  • 签到天数: 1538 天

    [LV.Master]伴坛终老

     楼主| 发表于 2021-5-28 12:14 | 显示全部楼层
    bool normalize(double vx,double vy,double vz,double &nx,double &ny,double &nz)
    {
            double len=sqrt(vx*vx+vy*vy+vz*vz);
            if (len>-MYFLOAT0&&len<MYFLOAT0)
            {
                    return false;
            }
            nx=vx/len;
            ny=vy/len;
            nz=vz/len;
            return true;
    }
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-6-18 10:57
  • 签到天数: 1538 天

    [LV.Master]伴坛终老

     楼主| 发表于 2021-5-28 12:15 | 显示全部楼层
    解法向量函数[code]bool CalNormalVector(double x1,double y1,double z1,double x2,double y2,double z2,double x3,double y3,double z3,double &dx,double &dy,double &dz)
    {
            double pt1pt2[3]={x2-x1,y2-y1,z2-z1};
            double pt2pt3[3]={x3-x2,y3-y2,z3-z2};
            double pt1pt3[3]={x3-x1,y3-y1,z3-z1};
            double nx=0.0,ny=0.0,nz=0.0f;
            cross(pt1pt2[0],pt1pt2[1],pt1pt2[2],pt2pt3[0],pt2pt3[1],pt2pt3[2],nx,ny,nz);
            if (nx>-MYFLOAT0&&nx<MYFLOAT0&&
                    ny>-MYFLOAT0&&ny<MYFLOAT0&&
                    nz>-MYFLOAT0&&nz<MYFLOAT0)
            {
                    return false;
            }
            //
            bool flag=normalize(nx,ny,nz,dx,dy,dz);
            if (!flag)
            {
                    return false;
            }
            //测试,三向量与法向量数量积都是0
            double dot1n1=dot(dx,dy,dz,pt1pt2[0],pt1pt2[1],pt1pt2[2]);
            double dot2n1=dot(dx,dy,dz,pt2pt3[0],pt2pt3[1],pt2pt3[2]);
            double dot3n1=dot(dx,dy,dz,pt1pt3[0],pt1pt3[1],pt1pt3[2]);
            if (!(dot1n1>-MYFLOAT0&&dot1n1<MYFLOAT0&&
                    dot2n1>-MYFLOAT0&&dot2n1<MYFLOAT0&&
                    dot2n1>-MYFLOAT0&&dot2n1<MYFLOAT0))
            {
                    return false;
            }
            return true;

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-6-18 10:57
  • 签到天数: 1538 天

    [LV.Master]伴坛终老

     楼主| 发表于 2021-5-28 12:15 | 显示全部楼层
    bool CalNormalVector(float x1,float y1,float z1,float x2,float y2,float z2,float x3,float y3,float z3,
                         float &dx,float &dy,float &dz)
    {
            //float a1,a2,b1,b2,c1,c2;
            //
            float _a1=x2-x1; float _b1=y2-y1; float _c1=z2-z1;
            float _a2=x3-x1; float _b2=y3-y1; float _c2=z3-z1;
            float _a3=x3-x2; float _b3=y3-y2; float _c3=z3-z2;
            //_a1x+_b1y+_c1z=0;
            //_a2x+_b2y+_c2z=0;
            //_a3x+_b3y+_c3z=0;
            //3个未知数3个方程组成的齐次方程组求解
            //系数矩阵A
            //| _a1 _b1 _c1 |
            //| _a2 _b2 _c2 |
            //| _a3 _b3 _c3 |
            //如果行列式A的值不等于0,则有唯一解且为零解
            float DA=_a1*_b2*_c3+_b1*_c2*_a3+_a2*_b3*_c1-_a3*_b2*_c1-_a1*_b3*_c2-_a2*_b1*_c3;
            if (DA!=0)
            {
                    dx=0.0f;
                    dy=0.0f;
                    dz=0.0f;
                    return false;
            }
            //---------------------------------------------//
            //如果行列式A的值等于0,则有非零解
            //非零解即x!=0时有解或者y!=0时有解或者z!=0时有解
            float x=0.0f,y=0.0f,z=0.0f;
            //若z!=0时有解,取z=-1
            //_a1x+_b1y=_c1;---(1)
            //_a2x+_b2y=_c2;---(2)
            //_a3x+_b3y=_c3;---(3)
            //任取2个方程即可,在此取(1)(2)
            x=0.0f;y=0.0f;
            bool flag3=GetTwoLineIntersection(_a1,_b1,_c1,_a2,_b2,_c2,x,y);
            if (flag3)//假设成立
            {
                    dx=-x;
                    dy=-y;
                    dz=1.0f;
                    return true;
            }
            //假设不成立,继续试验另一个假设
            //若x!=0时有解取x=-1,平面中两条直线求交点问题
            //_b1y+_c1z=_a1;---(1)
            //_b2y+_c2z=_a2;---(2)
            //_b3y+_c3z=_a3;---(3)
            //任取2个方程即可,在此取(1)(2)
            y=0.0f;z=0.0f;
            bool flag1=GetTwoLineIntersection(_b1,_c1,_a1,_b2,_c2,_a2,y,z);
            if (flag1)//假设成立
            {
                    dx=1.0f;
                    dy=-y;
                    dz=-z;
                    return true;
            }
            //假设不成立,继续试验另一个假设
            //若y!=0时有解取y=-1,平面中两条直线求交点问题
            //_a1x+_c1z=_b1;---(1)
            //_a2x+_c2z=_b2;---(2)
            //_a3x+_c3z=_b3;---(3)
            //任取2个方程即可,在此取(1)(2)
            x=0.0f;z=0.0f;
            bool flag2=GetTwoLineIntersection(_a1,_c1,_b1,_a2,_c2,_b2,x,z);
            if (flag2)//假设成立
            {
                    dx=-x;
                    dy=1.0f;
                    dz=-z;
                    return true;
            }
           
            //所有假设都不成立,求解失败
            return false;
    }
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    关闭

    推荐膜材品牌上一条 /6 下一条

    进口膜材 国产膜材 pvdf膜材ptfe膜材ETFE膜材
    最好的膜结构公司 一级膜结构资质 膜结构一级资质
    膜结构设计-膜结构十大品牌-etfe设计-充气膜结构
    诺科膜结构
    遨都膜结构设计
    中国膜结构网
    中国空间膜结构

    QQ|申请友链|手机版|中国膜结构论坛