已知直角三角形两点坐标和一边长,求另一点坐标

已知直角三角形两点坐标和一边长,求另一点坐标_第1张图片
如图: A(aX,aY),B(bX,bY),BC=L,求C点坐标(x,y)?
思路:
(1)
1-1        kAB * kCB = -1 // 互相垂直两直线斜率的乘积 = -1
1-2        [(aY - bY) / (aX - bX)] * [(y - bY) / (x - bX)] = -1
1-3        (aY - bY) * (y – bY) = -(aX – bX) * (x - bX)
1-4        (y – bY) = - [(aX - bX) * (x - bX)] / (aY - bY)
1-5        y = bY - [(aX - bX) * (x - bX)] / (aY - bY)
(2)
2-1        CB = L
2-2        CB² = L²
2-3        (x – bX)² + (y – bY)² = L²
(3)
把1-4带入2-3
3-1        (x – bX)² + {-[(aX – bX) * (x – bX)] / (aY – bY)}² = L²
3-2        (x – bX)² + [(aX – bX)² * (x – bX)²] / (aY – bY)² = L²
3-3        (x – bX)² + [1 + (aX – bX)² / (aY – bY)²] = L²
3-4        (x – bX)² + {[aY - bY]² + (aX – bX)² * (aY - bY)²} / (aY – bY)²} = L²
3-5        (x - bX)² = [L² * (aY – bY)²] / [(aX – bX)² + (aY – bY)²]
3-6        x – bX = ±√{[L² * (aY - bY)²] / [(aX - bX)² + (aY – bY)²]}
3-7        x – bX = ±[L * (aY - bY)] / √[(aX - bX)² + (aY – bY)²]
3-8        x = bX ± [L * (aY - bY)] / √[(aX - bX)² + (aY – bY)²]
(4)
把3-8带入1-5
4-1        y = bY – {(aX - bX) * (bX ± [L * (aY – bY)] / √[(aX - bX)² + (aY – bY)²] – bX)} / (aY – bY)
4-2        y = bY – {(aX - bX) * (±[L * (aY – bY)] / √[(aX - bX)² + (aY – bY)²])} / (aY – bY)
4-3        y = bY ± [L * (aX - bX)] / √[(aX - bX)² + (aY – bY)²]
结果:
        x1 = bX + [L * (aY - bY)] / √[(aX - bX)² + (aY – bY)²]
        y1 = bY - [L * (aX - bX)] / √[(aX - bX)² + (aY – bY)²]

        x1 = bX - [L * (aY - bY)] / √[(aX - bX)² + (aY – bY)²]
        y1 = bY + [L * (aX - bX)] / √[(aX - bX)² + (aY – bY)²]

你可能感兴趣的:(算法)