在 MAUI/C# 中对角边框着色 - 矩形对角线上的垂直线

问题描述 投票:0回答:1

我正在开发一个应用程序,我想在其中对角元素着色,如下图所示:

我的方法是使用类似的 LinearGradient

BackgroundBrush = new LinearGradientBrush(new GradientStopCollection(){
                    new GradientStop(Colors.Blue, 0.5f),
                    new GradientStop(Colors.Red, 0.5f),
                }, new Point(0, 1), new Point(1, 0));

但是,此解决方案仅适用于正方形。一旦形状变成矩形,对角线“线”就不再穿过相应的角。我确信我需要调整起点和终点,如下图所示:

我知道 A、B、C 和 D 点的位置。我需要渐变的起点和终点,即对角线的垂线与边界相交的位置。但是,我不确定如何计算这些点。

c# math geometry maui
1个回答
0
投票

如果垂线穿过BD对角线的中点,坐标原点在A点,矩形的宽度为

a
,高度为
b
a>=b
,则F点坐标为(例如,我们可以使用标量BD 和 EF 的乘积得到这个公式)

F.x = (a*a+b*b)/(2*a)

E.x = a-Fx
© www.soinside.com 2019 - 2024. All rights reserved.