取平面坐标相对角度(0-359度)及两角的相对角偏移量的函数
2009-09-27 04:33
288 查看
Public Function AngleOffsetValue(ByRef pAngleSur As Double, ByRef pAngleDes As Double) As Double 'AngleOffsetValue函数 '格式: [tOutAngle] = AngleOffsetValue(pAngleSur, pAngleDes) '功能: 取得源点与目的点的角度 '参数: pAngleSur double 源角 ' pAngleDes double 目的角 '返回: tOutAngle double 目的角相对于源角的角度,范围0-90。 Dim tOutAngle As Double Dim tAngleAbs As Double Dim tAngleAdd As Integer tAngleAbs = pAngleDes - pAngleSur tAngleAdd = (((tAngleAbs > 270) And -360) Or ((tAngleAbs < -270) And 360)) tOutAngle = tAngleAbs + tAngleAdd AngleOffsetValue = tOutAngle End Function Public Function AngleGetByPoint(ByRef pSurX As Double, ByRef pSurY As Double, ByRef pDesX As Double, ByRef pDesY As Double) As Double 'AngleGetByPoint函数 '格式: [tOutAngle] = AngleGetByPoint(pSurX, pSurY, pDesX, pDesY) '功能: 取得源点与目的点的角度 '参数: pSurX double 源点X坐标 ' pSurY double 源点Y坐标 ' pDesX double 目的点Y坐标 ' pDesY double 目的点Y坐标 '返回: tOutAngle double 目的点相对于源点的角度,范围0-359。 Dim tOutAngle As Double Dim tOffsetX(1) As Double, tOffsetY(1) As Double Dim tQuad_Code As Byte, tQuad_Code_NoExt As Byte, tQuad_Code_Index As Byte Dim tAngle_Offset As Integer, tAngle_Offset_List() As Byte Dim tAngle_Multi As Integer, tAngle_Multi_List() As Byte Dim tAngle_Sur(1) As Double tOffsetY(0) = 1: tOffsetX(1) = pSurX - pDesX: tOffsetY(1) = pSurY - pDesY '象限编码器 tQuad_Code = (CBool(tOffsetX(1)) And 8) Or (CBool(tOffsetY(1)) And 4) Or ((tOffsetX(1) > 0) And 2) Or ((tOffsetY(1) > 0) And 1) tQuad_Code_NoExt = ((tQuad_Code And 12) = 12) And 1 tQuad_Code_Index = tQuad_Code * 2 '角偏移解码器 tAngle_Offset_List() = "4444644454746468" tAngle_Offset = (tAngle_Offset_List(tQuad_Code_Index) - 52) * 90 '角符号解码器 tAngle_Multi_List() = "1111111111110000" tAngle_Multi = (tAngle_Multi_List(tQuad_Code_Index) - 49) tAngle_Sur(1) = Atn(tOffsetX(tQuad_Code_NoExt) / tOffsetY(tQuad_Code_NoExt)) * 57.2957795130823 tOutAngle = tAngle_Sur(tQuad_Code_NoExt) * tAngle_Multi + tAngle_Offset AngleGetByPoint = tOutAngle End Function
相关文章推荐
- 计算平面坐标某点(x,y)与原点(0,0)的角度
- 计算相对角度的两个函数
- 游戏地图中两点坐标相对的方向(角度)判断
- 窗体坐标+位置相关函数+屏幕坐标还是逻辑相对坐标
- 在平面内,已知一个矩形的四个角坐标,将矩形绕中心点转动一个角度,求旋转后的角坐标.
- C/C++已知坐标求角度(函数atan和atan2)
- 游戏地图中两点坐标相对的方向(角度)判断
- 平面上有一点(x,y),将其绕坐标原点旋转一角度α,求旋转后的点的坐标
- peek 函数的使用 与折线分割平面问题
- PS 滤镜——极坐标变换到平面坐标
- 7.2 设计一个点类,其中包含一对坐标点数据成员、一个求两个点之间距离的友元函 数 dist 和显示坐标点的成员函数,并用数据进行测试。
- 平面坐标, 极坐标 复数以及欧拉公式
- GPS 经纬度转换为 经过旋转后的平面坐标
- Android 利用方向传感器获得手机的相对角度
- RTH(Randomized Hough Transform)中计算p1,p2,p3三个点确定的平面在参数空间的坐标
- 求一个结构体A里某个变量相对A的偏移量
- [SVG] 根据SVG椭圆弧路径参数计算中心点坐标、起始角度、结束角度的Javascript函数
- 继承CStatic 平面坐标形式显示数据序列
- 当Android端,访问WEB service 时,同样的增删改,如果我在一个函数中,实现三个业务(同一函数三个业务是相对独立的,没有交集),和用三个函数实现三个业务,哪一个比较好
- 已知圆心,半径,角度,求圆上的点坐标