当前位置: 首页 > 知识库问答 >
问题:

按长度和坡度计算直线的第二点

施赞
2023-03-14

我有点被这个问题卡住了,我试图通过移动第二个点并保持它的斜率来改变画的线的长度。

注意:所有这些都是在wpf的画布上绘制的。

我计算了坡度:

var slope = (point2Y - point1Y) / (point2X - point1X);

通过使用弧tan函数,我能够计算我的alpha斜角。

var alpha = Math.Atan(slope);

现在我正在使用Math. CosMath. Sin来获取我的新点的cooridinates。

var xNew = point1X + length * Math.Cos(alpha);
var yNew = point1Y + length * Math.Sin(alpha);

这在四个案例中有两个是好的。但在另外两种情况下,这些观点似乎“放在了错误的一边”。

我不是数学家,经过几次尝试后都找不到合适的答案。

我感谢任何帮助!

共有2个答案

勾炳
2023-03-14

有一个解不需要三角函数。

Dx= P2x - P1x
Dy= P2y - P1y
R= L / √(Dx² + Dy²)

P3x = P1x + R . Dx
P3y = P1y + R . Dy
任云瀚
2023-03-14

使用Atan2:

var alpha = Math.Atan2(point2Y - point1Y, point2X - point1X);

或者根本不使用任何三角学:

var p1 = new Point(point1X, point1Y);
var p2 = new Point(point2X, point2Y);

var diff = p2 - p1; // a Vector
diff.Normalize();

var p3 = p1 + length * diff;
 类似资料:
  • 如何计算内容长度,例如:

  • 我需要关于计算二叉树高度的理论的帮助,通常是符号。 我看过以下文章: 计算二叉树的高度 其中一个帖子给出了以下符号: 高度(节点)=最大值(高度(节点L)、高度(节点R))1 假设我有以下二叉树: 因此,我是否计算左节点(8)和右节点(42)的最大值,然后加上1?我不太明白这种符号是如何计算树的高度的。

  • 在下图中,您可以看到从一个点(黑色圆圈)到其3个相关点()绘制了3条直线。 图像 问题 如何用两点间距离的百分比来计算每条直线上两点间的经纬度? 例如,如果我想得到一个位置,以便能够沿着每一条线绘制额外的圆,相差20%? 我现在有什么代码 上面代码所做的唯一事情是为每个点绘制一个圆,并从主圆(点a)到其他圆(点B)绘制一条线 我几乎需要知道如何计算点A及其相关点之间的多个坐标,按距离的百分比计算。

  • 本文向大家介绍javascript计算对象长度的方法,包括了javascript计算对象长度的方法的使用技巧和注意事项,需要的朋友参考一下 计算对象的长度,即获取对象属性的个数,具体如下 方法一:通过for in 遍历对象,并通过hasOwnProperty判断是否是对象自身可枚举的属性 方法二:通过Object.keys()获取对象可枚举属性所组成的数组,并通过length获取对象长度 以上就是

  • 问题内容: 我想在UILabel旁边显示图像,但是UILabel具有可变的文本长度,所以我不知道将图像放置在哪里。我该怎么做? 问题答案: -[NSString sizeWithFont:forWidth:lineBreakMode:]有什么用? 这个问题可能有您的答案,对我有用。 2014年,我根据下面的诺伯特的超方便评论编辑了这个新版本!这样就可以了。干杯