给定 2 个坐标和一个角度,求 C 坐标

Given 2 coordinates and an angle, find C coordinate

下面是等边三角形: 平分∠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坐标 enter image description here

假设点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