簡體   English   中英

如何從WPF C#中的rect獲取數據?

[英]how to get data from rect in wpf c#?

我用左,上,寬和高的矩形。 我想將其轉換為Path並獲取數據。

有沒有辦法做到這一點。 我只想檢查兩個路徑是否相互重疊並使用此方法。

任何建議將不勝感激。 TIA!

    Geometry geo1 = parentShape.Data.Clone();
    geo1.Transform = parentShape.RenderTransform;
    Geometry geo2 = childShape.Data.Clone();
    geo2.Transform = childShape.RenderTransform;
    geo1.FillContainsWithDetail(geo2);

編輯:請參閱我的代碼。 讓我知道我哪里錯了:(

 private bool CheckIfOverlapping(Rect rect1, Rect rect2, double rotation)
    {

        Geometry geo1 = RotatedRect(rect1, 0);

        Geometry geo2 = RotatedRect(rect2, rotation);

        var response1 = geo1.FillContainsWithDetail(geo2);
        var response2 = geo2.FillContainsWithDetail(geo1);
        var response3 = geo2.FillContains(geo1);
        var response4 = geo1.FillContains(geo2);

        return response4 || response3 || response1 == IntersectionDetail.Intersects || response2 == IntersectionDetail.Intersects;

    }

    private static Geometry RotatedRect(Rect rect, double rotation)
    {
        var centerX = (rect.Left + rect.Right) / 2;
        var centerY = (rect.Top + rect.Bottom) / 2;

        return new RectangleGeometry
        {
            Rect = rect,
            Transform = new RotateTransform(rotation, centerX, centerY),
        };
    }
    public Main()
    {
            var rect1 = new Rect(3546.5, 2734, 0, 0);
            var rect2 = new Rect(3510, 2731, 60, 52);
                Debug.WriteLine(CheckIfChildIsInsideParent(rect1, rect2, 180));

    }

您可以使用以下方法從旋轉的Rect創建幾何:

private static Geometry RotatedRect(Rect rect, double rotation)
{
    var centerX = (rect.Left + rect.Right) / 2;
    var centerY = (rect.Top + rect.Bottom) / 2;

    return new RectangleGeometry
    {
        Rect = rect,
        Transform = new RotateTransform(rotation, centerX, centerY)
    };
}

像這樣嘗試:

var rect1 = new Rect(100, 100, 100, 100);
var rect2 = new Rect(200, 100, 100, 100);

var geo1 = RotatedRect(rect1, 45);
var geo2 = RotatedRect(rect2, 45);

Debug.WriteLine(geo1.FillContainsWithDetail(geo2));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM