JAVA直线求斜率的时候为什么要求公约数

Python012

JAVA直线求斜率的时候为什么要求公约数,第1张

因为例如up=4,down=2,和up=8,down=4,计算出来的斜率是一样的,这俩种情况的取值可能会出现在一条直线上。返回值则是a和b的最大公约数,所以JAVA直线求斜率的时候要求公约数。

我晕,组件要重绘,就使用paintComponent方法吧,没有什么灵活不灵活的

import java.awt.Color

import java.awt.EventQueue

import java.awt.Graphics

import java.awt.Graphics2D

import java.awt.GridLayout

import javax.swing.BorderFactory

import javax.swing.JComponent

import javax.swing.JFrame

import javax.swing.JPanel

import javax.swing.border.EmptyBorder

public class FrameDemo extends JFrame {

private JPanel contentPane

TestComponent tc1, tc2

/**

* Launch the application.

*/

public static void main(String[] args) {

EventQueue.invokeLater(new Runnable() {

public void run() {

try {

FrameDemo frame = new FrameDemo()

frame.setVisible(true)

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

} catch (Exception e) {

e.printStackTrace()

}

}

})

}

public FrameDemo() {

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

setBounds(100, 100, 450, 300)

contentPane = new JPanel()

contentPane.setBorder(new EmptyBorder(5, 5, 5, 5))

setContentPane(contentPane)

contentPane.setLayout(new GridLayout(2, 1, 10, 10))

tc1 = new TestComponent()

tc1.setBorder(BorderFactory.createLineBorder(Color.BLUE))

tc2 = new TestComponent()

tc2.setBorder(BorderFactory.createLineBorder(Color.PINK))

contentPane.add(tc1)

contentPane.add(tc2)

}

}

class TestComponent extends JComponent {

public void paintComponent(Graphics g1) {

Graphics2D g = (Graphics2D) g1

g.setColor(Color.RED)

g.drawLine(0, 0, this.getWidth(), this.getHeight())

}

}