Получите значение y для каждого x в строке (WPF 3D) - PullRequest
0 голосов
/ 13 июля 2020

Я использовал VS 2019 в Windows 7 для разработки проекта WPF 3D.

Я создал функцию (рисовать линию при перетаскивании правой кнопкой мыши).

У меня есть пробовал много методов, но не смог этого добиться: когда я l oop x в диапазоне, y в этой строке выводится.

Код, который я пробовал:

public void OnMouseRightButtonUp(object sender, 
    System.Windows.Input.MouseEventArgs args)      
      {
    try
    {
        if (args.RightButton == MouseButtonState.Released)
        {
            currentPoint_2 = args.GetPosition(this);
            Line line = new Line();
            line.Stroke = SystemColors.WindowFrameBrush;
            line.X1 = currentPoint.X;
            line.Y1 = currentPoint.Y;
            line.X2 = currentPoint_2.X;
            line.Y2 = currentPoint_2.Y;
            line.StrokeThickness = 2;
            canvasOn3D.Children.Add(line);

            foreach (int x in Enumerable.Range(-100, 100))
            {
                double y = line.Y1 + ((line.Y2 - line.Y1) * (x - line.X1) 
                            / (line.X2 - line.X1));
                messagebox.show(y);

            }
        }

Когда x = -100, выходное значение y в моем коде равно 200, чего нет в строке.

Может быть какая-то проблема с этой строкой:

double y = line.Y1 + ((line.Y2 - line.Y1) * (x - line.X1) 
                        / (line.X2 - line.X1));

Но я мог бы не сообщать об ошибке ...... `

При отладке я рисую линию случайным образом и X1 = 53, Y1 = 194, X2 = 487, Y2 = 196 в случае отладки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...