zoukankan      html  css  js  c++  java
  • IfcVectorDifference

    注:定义符合ISO/CD 10303-42:1992

    此函数将输入参数的差值返回为(Arg1-Arg2)。函数返回两个输入向量的向量差作为向量。输入参数应具有相同的维数,但可以是方向或向量。如果两个输入参数都是向量,则它们必须用相同的单位表示,如果两个输入参数都是方向,则生成无单位结果。零差向量产生零量级的向量。

    注:根据ISO 10303-42中不同定义的向量_改编的函数。

    IFC1.5中的新函数

    EXPRESS Specification

    FUNCTION IfcVectorDifference
      (Arg1, Arg2 : IfcVectorOrDirection)
        : IfcVector;
    LOCAL
      Result : IfcVector;
      Res, Vec1, Vec2 : IfcDirection;
      Mag, Mag1, Mag2 : REAL;
      Ndim : INTEGER;
    END_LOCAL;
    
      IF ((NOT EXISTS (Arg1)) OR (NOT EXISTS (Arg2))) OR (Arg1.Dim <> Arg2.Dim) THEN
        RETURN (?) ;
      ELSE
        BEGIN
          IF 'IFCGEOMETRYRESOURCE.IFCVECTOR' IN TYPEOF(Arg1) THEN
            Mag1 := Arg1IfcVector.Magnitude;
            Vec1 := Arg1IfcVector.Orientation;
          ELSE
            Mag1 := 1.0;
            Vec1 := Arg1;
          END_IF;
          IF 'IFCGEOMETRYRESOURCE.IFCVECTOR' IN TYPEOF(Arg2) THEN
            Mag2 := Arg2IfcVector.Magnitude;
            Vec2 := Arg2IfcVector.Orientation;
          ELSE
            Mag2 := 1.0;
            Vec2 := Arg2;
          END_IF;
          Vec1 := IfcNormalise (Vec1);
          Vec2 := IfcNormalise (Vec2);
          Ndim := SIZEOF(Vec1.DirectionRatios);
          Mag  := 0.0;
          Res  := IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcDirection([0.0:Ndim]);
    
          REPEAT i := 1 TO Ndim;
            Res.DirectionRatios[i] := Mag1*Vec1.DirectionRatios[i] - Mag2*Vec2.DirectionRatios[i];
            Mag := Mag + (Res.DirectionRatios[i]*Res.DirectionRatios[i]);
          END_REPEAT;
    
          IF (Mag > 0.0 ) THEN
            Result := IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcVector( Res, SQRT(Mag));
          ELSE
            Result := IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcVector( Vec1, 0.0);
          END_IF;
        END;
      END_IF;
      RETURN (Result);
    END_FUNCTION;
    QQ 3087438119
  • 相关阅读:
    python3----列表
    python3----字符串
    PTA 深入虎穴 (正解)和树的同构
    第5章 树与二叉树学习小结
    第4章学习小结_串(BF&KMP算法)、数组(三元组)
    《数据结构》第3章-栈与队列的学习总结
    《数据结构》第2章线性表的学习总结
    Web安全基础——小白自学
    git撤销commit
    收藏一些比较好的前端博客
  • 原文地址:https://www.cnblogs.com/herd/p/14459870.html
Copyright © 2011-2022 走看看