C# 尝试获取等距阴影长度的公式?

C# 尝试获取等距阴影长度的公式?,c#,wpf,isometric,C#,Wpf,Isometric,我正在创建一个画布,上面有等距块。我想做的是从积木上投射一个阴影。我目前有一个版本的它的工作,但阴影似乎比它应该长得多。我想知道是否有任何公式可以计算出如何正确地投射阴影 我希望阴影比高度稍微短一点 (来源:) 问候 彼得公式 它的三角学: 光源矢量是三角形的c侧,您的块位于a侧 a^2 + b^2 = c^2 或者阴影的长度为b b^2 = c^2 - a^2 或 PS这是基于a和b的角度为90度,也就是你的方块直立。否则,您需要使用a和c之间的角度,然后使用cos、sin和或切线来计算

我正在创建一个画布,上面有等距块。我想做的是从积木上投射一个阴影。我目前有一个版本的它的工作,但阴影似乎比它应该长得多。我想知道是否有任何公式可以计算出如何正确地投射阴影

我希望阴影比高度稍微短一点


(来源:)

问候 彼得

公式

它的三角学:

光源矢量是三角形的
c
侧,您的块位于
a

a^2 + b^2 = c^2
或者阴影的长度为
b

b^2 = c^2 - a^2

PS这是基于a和b的角度为90度,也就是你的方块直立。否则,您需要使用a和c之间的角度,然后使用cos、sin和或切线来计算b侧的长度。我完全忘了,但你可以在这里问:


请参阅此计算器:

是否有欧几里德空间中所有元素(包括光源矢量)的坐标?
b = square root of (c^2 - a^2)