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
  • 相关阅读:
    Merge Intervals
    Jump Game
    微信小程序----button组件
    微信小程序----日期时间选择器(自定义精确到分秒或时段)(MUI日期时间)
    禁止搜索引擎抓取robots.txt文件设置方法
    [转载]【转】代码的版权声明怎么写
    微信小程序----picker选择器(picker、省市区选择器)(MUI选择器)
    微信小程序----模板(template)
    nginx安全配置
    微信小程序----icon组件
  • 原文地址:https://www.cnblogs.com/herd/p/14459870.html
Copyright © 2011-2022 走看看