首页 > 解决方案 > 给定2个坐标和一个角度,找到C坐标

问题描述

下面是一个等边三角形:平分∠ACB将三角形分成两个全等三角形(平分线在中点与线AB相交,形成直角!)

如果 A 是 (1,0),B 是 (5,0),C 是 (c,y),D 是 (c,0)。C 的角度为 tan(theta/2)。在这种情况下为 60 度。我将如何推导出公式以获得以下输出 3.4641016151377553。

另一个例子:A(-2,0), B(6,0),theta 为:120 度输出为:2.309401076758504

输出必须以弧度为单位 (pi/180)

输出是C坐标 在此处输入图像描述

标签: mathracketformulaalgebracalculus

解决方案


假设点A=(a,0)B=(b,0)在 x 轴上,这ABC是一个等腰三角形,角度thetaC在此处输入图像描述D坐标为((a+b)/2,0)。在直角三角形中,ADC我们有tan(theta/2) = (b-a)/2 / h。因此,我们得到 C 的 y 坐标为h = (b-a)/2/tan(theta/2)

这是相应的球拍代码:

#lang racket
(require math)
(define (half v) (/ v 2))
(define (deg2rad angle_deg) (* angle_deg (/ pi 180)))
(define (cy a b theta) (/ (half (- b a)) (tan (deg2rad (half theta)))))
(cy 1 5 60)
(cy -2 6 120)

给出输出:

3.464101615137755
2.309401076758504

推荐阅读