【问题标题】:Given 2 coordinates and an angle, find C coordinate给定2个坐标和一个角度,找到C坐标
【发布时间】:2020-01-28 18:38:55
【问题描述】:

下面是一个等边三角形: 二等分∠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

【问题讨论】:

  • 欢迎来到 Stack Overflow。本网站旨在帮助有计算机编程问题的人。如果您的问题主要与数学相关(看起来确实如此),将其发布到math.stackexchange.com 可能会获得更好的结果。如果您在编写代码时遇到问题,请发布您目前编写的代码,并描述其行为与您的预期有何不同。
  • 球拍代码:(sqrt (- (expt (- b a) 2) (expt (/ (+ a b) 3) 2))))--这仅适用于第一个示例,不包含θ角
  • 那么 D 是 A 和 B 的中点? A 和 B 是否总是在 X 轴上?
  • a在上面贴了一张图片
  • 仍然需要帮助

标签: math racket formula algebra calculus


【解决方案1】:

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

【讨论】:

  • 所以要找到 c 坐标的 y 值,我会计算这个公式 (b-a)/2/tan(theta/2)?我得到的输出是#i-0.3122399043233184
  • 是的。请注意,函数tan 的大多数实现都期望其参数以弧度为单位,而不是度数。所以theta 可能必须在这个公式中输入弧度。 (angle_rad = angle_deg/180 * pi)
  • 那么我将如何在公式中实现这一点。会是 (b-a)/2/(* (/ (tan(theta/2)) 180) pi)
  • 我将 A (1, 0) B (5, 0) 和 theta 计算为 60,但在将度数转换为弧度后,我仍然得到 #i-17.89002871329477 的值
  • (/ (/ (- 5 1) 2) (tan (* (/ 60 2) (/ pi 180))))3.464101615137755
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多