How to draw a line using y = mx +b in java?

2020-05-04 13:36发布

So I have a program that solves a system of linear equations, but that is not relevant. So what happens is that my program pass two linear equations in the form of: y = mx +b. I do not know how I would graph this using Graphics2D, I am having some trouble figuring it out. Right now I have no idea so I have no code that I could show you, but I can tell you that:

  • That my program correctly converts Ax + By = C into y = mx + B
  • That it would be helpful to show an example in some code possibly using the drawLine() method

3条回答
乱世女痞
2楼-- · 2020-05-04 14:05

drawLine draws a line between two points. So all you need to do is get two points from your equation and pass them into drawLine.

Example:

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

Of course this will draw a line segment between the two points. So you need to figure out which segment of the line you are interested in actually drawing and pick you x values accordingly.

查看更多
走好不送
3楼-- · 2020-05-04 14:13

You also need to consider how to map from physical (x, y) coordinates to screen (u, v) coordinates.

Transforming from Ax + By = C is mere high school algebra:

  1. Subtract Ax from both sides: By = C - Ax
  2. Divide both sides by B: y = (C/B) - (A/B)x
  3. By inspection, m = -(A/B) and b = (C/B). Obviously, B != 0.
查看更多
家丑人穷心不美
4楼-- · 2020-05-04 14:23

When you draw a line in code, you need to draw from point A to point B. (a line segment)

Pick a point A to start the line from, then draw from A to (A.X + dx, A.Y + m * dx), where dx is the desired width of the line.

For example, you may want A to be one corner of your area, and dx to be the width of the area.

查看更多
登录 后发表回答