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
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.
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:
- Subtract Ax from both sides: By = C - Ax
- Divide both sides by B: y = (C/B) - (A/B)x
- By inspection, m = -(A/B) and b = (C/B). Obviously, B != 0.
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.
来源:https://stackoverflow.com/questions/7410614/how-to-draw-a-line-using-y-mx-b-in-java