• IfcCrossProduct


    函数定义

    注:定义符合ISO/CD 10303-42:1992
    此函数返回两个输入方向的向量(或交叉)积。输入方向必须是三维的。结果总是一个无单位的向量。如果输入方向是平行或反平行的,则返回一个零大小的向量。
    注:功能改编自ISO 10303-42中定义的交叉产品。
    IFC1.5中增加的新函数

    EXPRESS Specification

    FUNCTION IfcCrossProduct
      (Arg1, Arg2 : IfcDirection) 
        : IfcVector;
    LOCAL
      Mag : REAL;
      Res : IfcDirection;
      V1,V2  : LIST[3:3] OF REAL;
      Result : IfcVector;
    END_LOCAL;
    
      IF (NOT EXISTS (Arg1) OR (Arg1.Dim = 2)) OR (NOT EXISTS (Arg2) OR (Arg2.Dim = 2)) THEN
        RETURN(?);
      ELSE
        BEGIN
          V1  := IfcNormalise(Arg1)IfcDirection.DirectionRatios; 
          V2  := IfcNormalise(Arg2)IfcDirection.DirectionRatios;
          Res := IfcRepresentationItem() || IfcGeometricRepresentationItem () 
                 || IfcDirection([(V1[2]*V2[3] - V1[3]*V2[2]), (V1[3]*V2[1] - V1[1]*V2[3]), (V1[1]*V2[2] - V1[2]*V2[1])]);
          Mag := 0.0;
          REPEAT i := 1 TO 3;
            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(Arg1, 0.0);
          END_IF;
          RETURN(Result);
        END;
      END_IF; 
    END_FUNCTION;
    QQ 3087438119
  • 相关阅读:
    学习进度三
    开课博客之个人介绍
    个人作业--数组
    学习进度二
    开学第一次测试
    实现点击不同的按钮加载不同的css
    Web存储
    HTML5(常用的表单控件)
    JS(获得当前时间并且用2015-01-01格式表示)
    JS(event事件)
  • 原文地址:https://www.cnblogs.com/herd/p/14426743.html
Copyright © 2020-2023  润新知