-
2021-03-13 11:05:35
/**
*@author blovedr
* 功能: java绘图原理------在窗口界面(或面板上)画出一张或多张图片问题解决方法
* 日期: 2018年4月28日 16:20
* 注释: 学习java的点点记录, 欢迎各位大神批评指导与交流。
*/
package com.test1;
import javax.swing.*;
import java.awt.*;
public class Demo_1 extends JFrame{
MyPanel mp = null; //自注: 定义MyPanel
public static void main(String[] args) {
// TODO Auto-generated method stub
Demo_1 demo_1 = new Demo_1();
}
public Demo_1()
{
mp = new MyPanel(); //自注: 创建一个MyPanel类的对象mp
this.add(mp); //自注: 将mp加入到this(JFrame)里面去
this.setSize(400, 300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //自注: 为了防止内存泄漏 设置窗口关闭按钮的默认操作(点击关闭时退出进程)
this.setVisible(true); //自注: 设置窗体是可见的
}
}
//定义一个MyPanel(我自己的面板, 是用于绘图和显示绘图的区域)
class MyPanel extends JPanel
{
//覆盖JPanel 的paint方法
//Graphics 是绘图的重要类, 你可以把它理解成一只画笔
public void paint(Graphics g)
{
//1. 调用父类函数完成初始化(任务)
//这句话, 不能少
super.paint(g);
System.out.println("paint被调用");
//先画出一个圆
//g.drawOval(10, 10, 30, 30);
//画出直线
//g.drawLine(10, 10, 40, 40);
//画出矩形边框
//g.drawRect(10, 10, 40, 60); //自注: g.drawRect(x, y, width, height); ---x和y代表矩形的左上角坐标
//填充矩形
//设置颜色
// g.setColor(Color.blue);
// g.fillRect(10, 10, 40, 60);
// g.setColor(Color.red);
// g.fillRect(70, 70, 40, 60);
//在面板上画出图片---问题
//Image im = Toolkit.getDefaultToolkit().getImage(Panel.class.getResource("/hua.jpg")); //error
//自注:Toolkit 是个类, 它里面有个静态方法叫 getDefaultToolkit() (得到它工具的集), 然后它有个getImage
// Panel.class.getResource() ---用Panel这个类里面的getResource() 方法把这个图片加载到这个对象m里面去了。
//解决方法: Image im = Toolkit.getDefaultToolkit().getImage(Panel.class.getResource("/hua.jpg"));---将“Panel.class.getResource("/hua.jpg")"替换成图片的路径, // 如下面的方法1_示例, 可以在面板上画出一张或多张图片。
//在面板上画出一张图片问题解决方法1_示例1---三朵花属于不同路径(hua,hua2,hua3分别属于不同文件夹下的单独一个图片)
//Image im = Toolkit.getDefaultToolkit().getImage("D:\\picture\\hua\\hua.jpg"); //正确 2018.4.28 11:29
//在面板上画出一张图片问题解决方法1_示例2---hua2和hua属于不同路径
Image im2 = Toolkit.getDefaultToolkit().getImage("D:\\picture\\hua2\\hua2.jpg"); //正确 2018.4.28 15:18
//在面板上画出一张图片问题解决方法1_示例3---hua3和(hua与hua2)属于不同路径
//Image im3 = Toolkit.getDefaultToolkit().getImage("D:\\picture\\hua3\\hua3.jpg"); //正确 2018.4.28 15:29
//在面板上画出一张图片问题解决方法2_示例---三朵花属于同一个文件夹(hua,hua2,hua3分别属于相同同文件夹下的单独一个图片)
//Image im = Toolkit.getDefaultToolkit().getImage("D:\\picture\\hua\\hua.jpg");
//Image im2 = Toolkit.getDefaultToolkit().getImage("D:\\picture\\hua\\hua2.jpg"); //error 自注: 如果三个花属于同一个文件, 程序在这个程序中单独无法正常显示图片 。
//Image im3 = Toolkit.getDefaultToolkit().getImage("D:\\picture\\hua\\hua3.jpg");
//显示
//g.drawImage(im, 90, 90, 100, 50, this); //示例1 //正确 2018.4.28 11:29
g.drawImage(im2, 90, 90, 100, 50, this); //示例2 //正确 2018.4.28 15:18
//g.drawImage(im3, 90, 90, 100, 50, this); //示例3 //正确 2018.4.28 15:29
//自注: g.drawImage(im, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, observer)
// dx1, dy1表示你画的图片的左上角, dx2, dy2表示你用的图片要画多宽多高(dx2, dy2 ---宽, 高), this代表JPanel本身。
}
}
更多相关内容 -
java实现画图板上画一条直线
2021-03-12 19:37:19java实现画图板上画一条直线发布于 2020-8-11|复制链接摘记: 目标:在画图板上画一条直线,供大家参考,具体内容如下一、首先需要建立一个界面过程:1、创建界面对象(Java语言中已经有,可直接创建对象来使用)。...java实现画图板上画一条直线
发布于 2020-8-11|
复制链接
摘记: 目标:在画图板上画一条直线,供大家参考,具体内容如下一、首先需要建立一个界面过程:1、创建界面对象(Java语言中已经有,可直接创建对象来使用)。2、对于一个界面,我们需要设置它的大小、居中、界面关闭、界面可见。3、写主方法去实现界面。(目前界面还未 ..
目标:在画图板上画一条直线,供大家参考,具体内容如下一、首先需要建立一个界面过程:1、创建界面对象(Java语言中已经有,可直接创建对象来使用)。2、对于一个界面,我们需要设置它的大小、居中、界面关闭、界面可见。3、写主方法去实现界面。(目前界面还未实现画图板的功能)
```java
public class DrawUI {
//显示界面的方法
public void show(){
//创建界面对象
JFrame jframe = new JFrame();
//设置界面的尺寸、位置居中、关闭、标题
jframe.setSize(1000, 900);
jframe.setLocationRelativeTo(null);
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jframe.setTitle("画图板v2.0");
//设置界面可见
jframe.setVisible(true);
}
//主方法
public static void main(String[] args){
DrawUI UI = new DrawUI();
UI.show();
}
}
```
二、创建监听器类1、重新创建一个监听器(Listener)的类:要在界面上实现画图,我们需要给界面添加监听器。====>实际上是让鼠标的一些指令能够在界面上有反应。换言之,监听器是一个连接鼠标与界面的桥梁。2、监听器类(Listener)实现鼠标监听器(MouseListener)的接口.3、加入鼠标监听器下的所有方法。
```java
public class Listener implements MouseListener{
//鼠标点击
public void mouseClicked(MouseEvent e){}
// 鼠标按下
public void mousePressed(MouseEvent e){}
//鼠标松开
public void mouseReleased(MouseEvent e){}
// 进入
public void mouseEntered(MouseEvent e){}
// 退出
public void mouseExited(MouseEvent e){}
}
```
三、实现画出直线1、创建监听器类(Listener)后,我们需要在界面类中添加监听器 =====> 在界面上添加监听器后,我们才能在界面上画图。(写在画图板“可见”之前 )。在画图板中输入一下代码
```java
//创建监听器
Listener draw = new Listener();
//添加监听器
jframe.addMouseListener(draw);
```
2、画一条直线,我们需要用Graphics (画布工具)用于画图。在此,画图板需要获取Graphics 并且监听器对象上设置该画布。(写在画图板“可见”之后)
```java
//获取Graphics
Graphics graph = jframe.getGraphics();
//给监听器的画布对象赋值
draw.setGraphics(graph);
```
然后转到监听器类(Listener)中输入代码3、开始画直线 首先,画一条直线我们需要获取直线两端点的坐标。所以定义x1,y1,x2,y2。画布画图,需要定义Graphics
```java
//记录坐标
int x1,y1,x2,y2;
//定义Graphics
Graphics graph1;
```
传画布(Graphics)值的方法 ====> 画图板上的画布值等于监听器上的画布值
```java
//传画布值的方法
public void setGraphics(Graphics graph2){
graph1 = graph2;
```
鼠标画出直线在鼠标按下事件中输入起点坐标
```java
public void mousePressed(MouseEvent e){
//获取按下信息
x1=e.getX();
y1=e.getY();
}
```
在鼠标松开事件中输入终点坐标,并画出直线
```java
public void mouseReleased(MouseEvent e){
//获取松开信息
x2=e.getX();
y2=e.getY();
//画线
graph1.drawLine(x1,y1,x2,y2);
}
```
四、完整过程:界面
```java
package Draw;
import java.awt.Graphics;
import javax.swing.JFrame;
public class DrawUI {
public void show(){
JFrame jframe = new JFrame();
jframe.setSize(1000, 900);
jframe.setLocationRelativeTo(null);
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jframe.setTitle("画图板v2.0");
//创建监听器
Listener draw = new Listener();
//添加监听器
jframe.addMouseListener(draw);
jframe.setVisible(true);
//获取Graphics
Graphics graph = jframe.getGraphics();
//给监听器的画布对象赋值
draw.setGraphics(graph);
}
//主方法
public static void main(String[] args){
DrawUI UI = new DrawUI();
UI.show();
}
}
```
监听器
```java
package Draw;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
public class Listener implements MouseListener{
//记录坐标
int x1,y1,x2,y2;
//定义Graphics
Graphics graph1;
//传画布值的方法
public void setGraphics(Graphics graph2){
graph1 = graph2;
}
public void mouseClicked(MouseEvent e){}
public void mousePressed(MouseEvent e){
//获取按下信息
x1=e.getX();
y1=e.getY();
}
public void mouseReleased(MouseEvent e){
//获取松开信息
x2=e.getX();
y2=e.getY();
//画线
graph1.drawLine(x1,y1,x2,y2);
}
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
}
```
-
在java的image图片类中画线怎么画
2021-02-12 22:28:59展开全部packagecom.weifeng.sys.util;importjava.awt.Color;importjava.awt.Font;importjava.awt.Graphics;importjava.awt.image.BufferedImage;importjava.io.IOException;importjava.util.Random;importjavax...展开全部
package com.weifeng.sys.util;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.Random;
import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class Image extends HttpServlet {
private static final long serialVersionUID = 1L;
private String sRand;//验证码
//验证码集合
private String[] allchar = {
e5a48de588b662616964757a686964616f31333337623432"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "P", "Q", "R", "S", "T", "U", "V", "W","X", "Y", "Z",
"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "m", "n", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y",
"1", "2", "3", "4", "5", "6", "7", "8", "9"};
protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("image/jpeg");
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
HttpSession session = request.getSession();
//在内存中创建图象
int width = 80, height = 25;
//保存图片
BufferedImage image = new BufferedImage(width, height,BufferedImage.TYPE_INT_RGB);
//保存随即产生的验证码
StringBuffer sb = new StringBuffer();
//随机数生成器
Random r = new Random();
//随机生成四个随即字符
for (int i = 0; i
sb.append(allchar[r.nextInt(allchar.length)]);
}
sRand = sb.toString();
//image = new BufferedImage(80, 40, BufferedImage.TYPE_3BYTE_BGR);
//绘图上下文
Graphics g = image.getGraphics();
// 设定背景色
Color bgColor=getRandColor(200,250);
g.fillRect(0, 0, width, height);
// 设定字体
g.setFont(new Font("Times New Roman", Font.PLAIN, 24));
//绘制验证码图片
int yzmWidth = 20, yzmHeight = 24;
for (int i = 0; i
BufferedImage bi = new BufferedImage(yzmWidth, yzmHeight, BufferedImage.TYPE_3BYTE_BGR);
Graphics bg = bi.getGraphics();
bg.setColor(bgColor);
bg.fillRect(0, 0, yzmWidth, yzmHeight);
bg.setColor(new Color(yzmHeight + r.nextInt(110), yzmHeight + r.nextInt(110), yzmHeight + r.nextInt(110)));
bg.setFont(new Font("", r.nextInt(4) + 1, r.nextInt(5) + 16));
g.setColor(new Color(yzmHeight + r.nextInt(110), yzmHeight + r.nextInt(110), yzmHeight + r.nextInt(110)));// 调用函数出来的颜色相同,可能是因为种子太接近,所以只能直接生成
bg.drawString(sRand.substring(i, i + 1), 2, yzmWidth);
g.drawImage(bi, 0 + yzmWidth * i, 0, yzmWidth, yzmHeight, null);
}
//干扰线
//int grxHeight = 25;
//for (int j = 0; j <50; j++) {
//int x = r.nextInt(40);
// int y = r.nextInt(grxHeight);
// int xl = r.nextInt(80);
// int yl = r.nextInt(grxHeight);
// g.setColor(new Color(10 + r.nextInt(90), 10 + r.nextInt(90), 10 + r.nextInt(90),r.nextInt(80)));
// g.drawLine(x, y, xl, yl);
//}
//干扰线
//for (int j = 0; j <100; j++) {
//int x = r.nextInt(60);
// int y = r.nextInt(grxHeight);
// g.setColor(new Color(10 + r.nextInt(90), 10 + r.nextInt(90), 10 + r.nextInt(90),100));
// g.drawLine(x, y, x, y);
//}
//画边框
g.setColor(new Color(1));
g.drawRect(0,0,width-1,height-1);
// 将认证码存入SESSION
session.setAttribute("rand", sRand);
// 图象生效
g.dispose();
ServletOutputStream responseOutputStream = response.getOutputStream();
// 输出图象到页面
ImageIO.write(image, "JPEG", responseOutputStream);
// 以下关闭输入流!
responseOutputStream.flush();
responseOutputStream.close();
}
// 给定范围获得随机颜色
Color getRandColor(int fc, int bc) {
Random random = new Random();
if (fc > 255) fc = 255;
if (bc > 255) bc = 255;
int r = fc + random.nextInt(bc - fc);
int g = fc + random.nextInt(bc - fc);
int b = fc + random.nextInt(bc - fc);
return new Color(r, g, b);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
processRequest(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
processRequest(request, response);
}
public String getServletInfo() {
return "Short description";
}
}
中间屏蔽的那段就是画线操作
-
JAVA练习168-绘制直线
2022-02-25 16:30:09屏幕宽度为w,且w可被32整除(即一个 int 不会分布在两行上),屏幕高度可由数组长度及屏幕宽度推算得出。请实现一个函数,绘制从点(x1, y)到点(x2, y)的水平线。 给出数组的长度 length,宽度 w(以比特为单位)、...绘制直线。有个单色屏幕存储在一个一维数组中,使得32个连续像素可以存放在一个 int 里。屏幕宽度为w,且w可被32整除(即一个 int 不会分布在两行上),屏幕高度可由数组长度及屏幕宽度推算得出。请实现一个函数,绘制从点(x1, y)到点(x2, y)的水平线。
给出数组的长度 length,宽度 w(以比特为单位)、直线开始位置 x1(比特为单位)、直线结束位置 x2(比特为单位)、直线所在行数 y。返回绘制过后的数组。
示例1:
输入:length = 1, w = 32, x1 = 30, x2 = 31, y = 0
输出:[3]
说明:在第0行的第30位到第31为画一条直线,屏幕表示为[0b000000000000000000000000000000011]示例2:
输入:length = 3, w = 96, x1 = 0, x2 = 95, y = 0
输出:[-1, -1, -1]分析:
方法:模拟
可以通过 w * y + x1 的方式,将二维平面转化为一维,那么对目标范围的直线的情况进行讨论即可:
图1 图2 - 目标直线不在当前范围内,如 [ 0,32 ) 和 [ 128,160 ),此时全 0。
- 左边界在当前范围内,如图1 [ 32,64 ),此时 left 左边全 0,右边全 1。
- 当前范围在目标直线内,如图1 [ 64,96 ),此时全 1。
- 右边界在当前范围内,如图1 [ 96,128 ),此时 right 左边全 1,右边全 0。
- 目标直线都在当前范围内,如图2 [ 65,96 ),此时 [ left,right ] 全 1,其余全 0。
时间复杂度:O(n) n 为 length
空间复杂度:O(n)public int[] drawLine(int length, int w, int x1, int x2, int y) { //结果数组 int[] res = new int[length]; //定义左右边界 int left = w * y + x1, right = w * y + x2; //遍历,记录每32位的数字 for(int i = 0; i <length; ++i){ //当前范围左右边界 int cur = i * 32, next = cur + 31; //目标范围都不在范围里 //当前范围在目标范围外 if(next < left || cur > right){ continue; } //当范围在目标范围内 if(cur >= left && next <= right){ res[i] = -1; continue; } //目标范围仅在当前范围里 if(cur <= left && right <= next){ res[i] = -1 >>> left % 32 & -1 << 31 - right % 32; continue; } //左边界部分在当前范围内 if(cur <= left){ res[i] = -1 >>> left % 32; continue; } //右边界部分在当前范围内 res[i] = -1 << 31 - right % 32; } return res; }
优化:
因为Java 整形数组默认为 0,索引只需要将直线中间的范围赋为 -1,然后单独计算左右边界即可。
时间复杂度:O(n) 最坏情况,全是1
空间复杂度:O(n)class Solution { public int[] drawLine(int length, int w, int x1, int x2, int y) { //结果数组 int[] res = new int[length]; //定义左右边界 int left = (w * y + x1) / 32, right = (w * y + x2) / 32; //对中间进行赋值 for(int i = left + 1; i <= right; ++i){ res[i] = -1; } //左边界 res[left] = -1 >>> x1 % 32; //右边界 res[right] = res[right] & Integer.MIN_VALUE >> x2 % 32; return res; } }
题目来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/draw-line-lcci -
java写的画板
2017-12-05 19:34:253、在鼠标移动时间中实现画笔的逻辑(其实就是绘制直线,鼠标每移动一个像素,就会触发移动事件,通过移动事件获取鼠标的坐标,与上一次移动的坐标连线就可以了; (6)刷子功能 刷子其实就是加粗的画笔,画出来的... -
Java绘图板源码 画图源代码 Swing
2022-01-18 19:54:09Java绘图板源代码 画图 使用Swing、LookAndFeel 支持图片打开保存,直线圆形椭圆矩形正方形多边形添加文字 菜单栏+右键菜单 Java程序设计课程设计 -
在java图形中删除画线
2021-02-26 18:38:02还有很多其他问题,例如:每次拖动鼠标时,您都会在列表中添加一个点,等等。 它还不够完美,但已经有足够的变化供您分析。import java.awt.Color;import java.awt.Dimension;import java.awt.Graphics;import java.... -
java编写的画板
2015-01-19 10:23:24这是一个用Java GUI编写的画板程序,自编代码,java课程设计 实现铅笔,橡皮,功能,可以画直线,矩形,圆等各种形状,可以保存读取所画图片,更改背景等。也有图片。可根据自己需求添加新功能,有一些功能也供大家... -
java简易画板
2017-10-12 07:36:46java简易画板,描述了用java实现画板的一些简易的功能,便于初学者快速上手了解如何运用java实现一些功能 -
java中根据自己的需要画一张jgp的图片
2021-08-04 14:46:04在此之前首先要了解几个比较重要的知识点BufferedImage,ImageIO,Graphics2D,Color类的操作方法 1.BufferedImage类 BufferedImage是Image是抽象类的实现类,主要作用是将图片加载到内存中,方便我们对其进行... -
Paint.java
2020-01-22 15:38:01一个简单的画板程序,教会你如何用弹窗画画,实现了基本的绘画,包括圆、椭圆、直线、矩形、文本。喜欢可拿去,免费分享 -
Java 在PDF文档中绘制图形
2022-04-20 20:31:18本篇文档将介绍通过Java编程在PDF文档中绘制图形的方法。包括绘制矩形、椭圆形、不规则多边形、线条、弧线、曲线、扇形等等。针对方法中提供的思路,也可以自行变换图形设计思路,如菱形、梯形或者组合图形等。 **... -
JAVA -- NPOI在excel中画直线
2018-02-03 14:47:58在实际应用中会碰到导出到excel的需求,下面是找到的一个案例。 HSSFSheet sheet1 = hssfworkbook.CreateSheet("Sheet1"); HSSFPatriarch patriarch = sheet1.CreateDrawingPatriarch(); HSSFClientAnchor a1 = ... -
用Java实现简单的画画画板
2021-08-14 16:03:49先直接上代码吧,备注大部分都在代码中。 import java.awt.*; import javax.swing.*; import java.util.*; import java.awt.event.*; import javax.swing.event.*; import java.io.*; import javax.imageio.ImageIO;... -
用Java画线
2021-03-07 03:35:44一个小动画向您展示了您需要在行旋转方面寻找的逻辑。可以把这条线想像成时钟上的指针。如何在时钟上设置一只手的动画。这几乎是完全相同的概念。...在此处输入图片说明import java.awt.Color;import java.awt.... -
JavaSE基础 awt Graphics2D 生成矩形图片并向其中画一条直线
2021-02-26 18:05:38礼悟:好好学习合思考,尊师重道存感恩。叶见寻根三返一,江河湖海同一体。虚怀若谷良心主,愿行无悔给最苦。读书锻炼强身心,诚劝且行且珍惜。os :windows7 x64jdk:jdk-8...import java.awt.BasicStroke;import j... -
Java制作简单小画板
2020-12-01 15:47:021、Drawpad类,包括画板,画板功能设计,保存图片等 package Java课程设计; import java.awt.Graphics; import javax.imageio.ImageIO; import javax.print.DocFlavor.STRING; import javax.swing.ImageIcon; ... -
Java 实现图片合成
2021-02-25 19:15:56图片合成利用Java的绘图方法,实现图片合成在开始之前,先定一个小目标,我们希望通过图片合成的方式,创建一个类似下面样式的图片 I. 设计思路首先解析一下我们的目标实现图片合成,那么这些合成的基本组成单元有些... -
JAVA+opencv使用霍夫线边识别直线
2021-07-03 15:30:05刚毕业,公司要我做个视觉识别图片,用到了霍夫线变,直接上 第一次写博客,不喜勿喷 先说下基本原理: 平时我们所常用的表示直线的方法是使用笛卡尔坐标系,也就是:y=kx+b 而霍夫线变则是使用的极坐标:r=xcos... -
java绘画中的锯齿问题
2021-02-26 12:04:01java给图中的锯齿问题也...JDK1.1呈现模型与大多数现有平台呈现类的功能一致,需要将整数坐标解析为离散的画笔,使其完全落在指定的像素成员上。JDK 2D(tm) (Java(tm)2平台)API支持抗锯齿呈现器。一像素宽的画笔不... -
java加载窗口画图形加载图片确定图形坐标的方法实例源码介绍
2021-03-10 08:52:42java如何画圆形,如何画直线,如何设置画笔的颜色,如何设置文字的字体样式加粗、java设置填充图的颜色等。Graphics类、Font类、Image类的应用实例。虽然java在图形化编程方面并不是强项或者说那就是java语言最大的... -
使用 java.awt.Graphics2D 画线
2021-02-27 20:43:57下面是编程之家 jb51.cc 通过网络收集整理的代码片段...import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.geom.Line2D;/*** Displays a JFrame and draws a line on it using the Java 2D Gra... -
JAVA利用POI在excel中绘图
2021-02-26 17:54:49package ...import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStream;import org.apache.poi.hssf.usermodel.HSSFCellStyle;import org.apache.poi.hss... -
java实现画简单图形
2008-08-01 21:54:39用java开发的简单的画图程序,可以实现直线,矩形,圆,等的画图,同时可以设置画笔的颜色 <br>按住shift可以画出正方形和正圆 -
来,在图片上画个矩形吧,取经之旅第 14 天
2021-01-09 16:56:53使用 OpenCV 画直线 修改绘制部分代码如下: import cv2 import numpy as np ix, iy = -1, -1 # 创建回调函数 def draw_rect(event, x, y, flags, param): global ix, iy # 当按下左键时返回起始位置坐标 if event ... -
Java 实现画图板
2018-11-16 00:36:29实现了基本的绘画,包括圆、椭圆、直线、矩形、文本。 -
Java数字图像处理基础-------Java Swing简单使用,面板显示图片
2022-02-04 13:02:10Java数字图像处理基础-------Java ...显示图片有很多的方法,这里就先演示使用Canvas把图片直接画在画板上的方式 二:代码演示 import javax.imageio.ImageIO; import javax.swing.*; import java.awt.*; import ja -
键盘线程控制汽车限制在窗口内移动(源码+图片)
2015-09-26 01:32:59键盘线程控制汽车限制在窗口内移动(源码+图片) 涉及到的方面有:线程、图片加载、键盘监听、Graphics画笔方法应用、图片的坐标控制等。 简单的小程序对联系面向对象有很多好处,适合java初学者学习并练习。