Java Swing,以特定角度画一条线?

埃利斯佩

我用Java制作了一个JSlider,它可以改变线需要倾斜的角度。

angle = new JSlider(SwingConstants.HORIZONTAL, 0, 180, 90);
angle.setSize(300, 50);
angle.setLocation(650, 60);
angle.setPaintTicks(true);
angle.setPaintTrack(true);
angle.setMinorTickSpacing(10);
angle.setMajorTickSpacing(30);
angle.setPaintLabels(true);
angle.addChangeListener(this);

thepanel.add(angle);

我希望代码绘制从JSlider实现角度的那条线。

这是我的代码:

public void paintComponent(Graphics g){
    super.paintComponent(g);

    int angle = intAngle;
    Graphics2D graphics = (Graphics2D)g;

    int startX = getWidth()/2;
    int startY = getHeight()/2;
    int length = 200;


    int endX = startX + length * (int)Math.cos(Math.toRadians(angle));
    int endY = startY + length * (int)Math.sin(Math.toRadians(angle));

    graphics.drawLine(startX, startY, endX, endY);

}

旋转给定值的线背后的数学是什么?

凯文·沃克曼

第1步:扩展JPanel和覆盖paintComponent()您已经提到您已经执行了此步骤,但是此处提供更多信息

步骤2:将您的价值JSlider带入您的paintComponent()方法。

第3步:在上添加一个侦听器,该侦听器JSlider告诉您JPanel只要值更改即可重绘自身。

步骤4:使用基本三角函数找出要绘制的线的X和Y坐标,然后进行绘制。它可能看起来像这样:

public void paintComponent(Graphics g){
   super.paintComponent(g);
   int angle = getSliderValue(); //you have to implement this function

   int startX = getWidth()/2;
   int startY = getHeight()/2;
   int length = 100;

   int endX = startX + (int)Math.cos(Math.toRadians(angle)) * length;
   int endY = startY + (int)Math.sin(Math.toRadians(angle)) * length;

  g.drawLine(startX, startY, endX, endY);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在精灵套件中画一条线

来自分类Dev

用UIBezierPath画一条线

来自分类Dev

片段着色器-画一条线?

来自分类Dev

BabylonJS画一条线

来自分类Dev

如何画一条线WPF

来自分类Dev

在画布上画一条线

来自分类Dev

用给定的角度和长度从x,y画一条线

来自分类Dev

如何只画一条线

来自分类Dev

在WinAPI中的单词旁边画一条线

来自分类Dev

用垂直装饰画一条线

来自分类Dev

迅速在NSView上画一条线

来自分类Dev

用Java swing画一条线会画多条线

来自分类Dev

在Android中的ImageView上方画一条线

来自分类Dev

在UITextView内画一条线-NSAttributedString

来自分类Dev

如何用matplotlib画一条线?

来自分类Dev

为什么MoveTo()画一条线?

来自分类Dev

从UILabel到UIImage画一条线

来自分类Dev

Java的设定值在一条线的if else循环后

来自分类Dev

在jetpack中画一条线

来自分类Dev

在Java中画一条没有继承的线

来自分类Dev

BabylonJS画一条线

来自分类Dev

Java-Graphics2D-鼠标移动后画一条线

来自分类Dev

慢慢画一条线

来自分类Dev

在JFrame Java上的图像上方跟踪一条线

来自分类Dev

给定中心点,角度和长度时画一条线

来自分类Dev

画一条线,但我得到点和曲线(java)

来自分类Dev

如何在Java中的事件处理程序中在JLabel上画一条线?

来自分类Dev

Java图形(画一条线)

来自分类Dev

在Java中的图像上画一条线