Как нарисовать линию, используя y = mx + b в Java? - PullRequest
0 голосов
/ 14 сентября 2011

Итак, у меня есть программа, которая решает систему линейных уравнений, но это не имеет отношения. Так что получается, что моя программа передает два линейных уравнения в виде: y = mx + b. Я не знаю, как бы я изобразил это с помощью Graphics2D, у меня возникли проблемы с его выяснением. Сейчас я понятия не имею, поэтому у меня нет кода, который я мог бы показать вам, но я могу сказать вам, что:

  • что моя программа правильно конвертирует Ax + By = C в y = mx + B
  • Было бы полезно показать пример в некотором коде, возможно, с использованием метода drawLine ()

Ответы [ 3 ]

3 голосов
/ 14 сентября 2011

Когда вы рисуете линию в коде, вам нужно рисовать от точки A до точки B. (линия сегмент )

Укажите точку A, с которой начинается линия, затем нарисуйте от A до (A.X + dx, A.Y + m * dx), где dx - желаемая ширина линии.

Например, вы можете захотеть, чтобы A был одним углом вашей области, а dx - шириной области.

1 голос
/ 14 сентября 2011

Вам также необходимо подумать, как отобразить физические (x, y) координаты на экранные (u, v) координаты.

Преобразование из Ax + By = C - простая алгебра средней школы:

  1. Вычтите топор с обеих сторон: By = C - Axe
  2. Разделите обе стороны на B: y = (C / B) - (A / B) x
  3. По результатам проверки, m = - (A / B) и b = (C / B). Очевидно, B! = 0.
0 голосов
/ 14 сентября 2011

drawLine рисует линию между двумя точками. Так что все, что вам нужно сделать, это получить две точки из вашего уравнения и передать их в drawLine.

Пример:

x1 = 0
x2 = 10
y1 = m*x1 + b
y2 = m*x2 + b;
g2d.drawLine(x1, y1, x2, y2);

Конечно, это нарисует отрезок между двумя точками. Поэтому вам нужно выяснить, какой отрезок линии вы хотите нарисовать, и соответственно выбрать значения x.

...