Java制作画图程序的GUI问题

做了一个基于工厂模式的画图程序,有一些bug,画图会出现一些乱七八糟的情况。。。百思不得其解,来求助各位。。。
父类Shape:

 import java.awt.Graphics;

public abstract class Shape {

    abstract void draw(Graphics g);

}

Line类:

 import java.awt.Graphics;
import java.awt.Point;

public class Line extends Shape {

    private Point start;
    private Point end;

    Line(Point start, Point end) {
        this.start = start;
        this.end = end;
    }

    @Override
    void draw(Graphics g) {
        g.drawLine(start.x, start.y, end.x, end.y);
    }

}

Circle类:

import java.awt.Graphics;
import java.awt.Point;

public class Circle extends Shape {

    private Point start;
    private Point end;

    public Circle(Point start, Point end) {
        this.start = start;
        this.end = end;
    }

    @Override
    void draw(Graphics g) {
        g.drawOval(Math.min(start.x, end.x), Math.min(start.y, end.y),
                Math.max(Math.abs(start.x), Math.abs(start.y - end.y)),
                Math.max(Math.abs(start.x - end.x), Math.abs(start.y - end.y)));
    }

}

Rect类:

 import java.awt.Graphics;
import java.awt.Point;

public class Rect extends Shape {

    private Point start;
    private Point end;

    public Rect(Point start, Point end) {
        this.start = start;
        this.end = end;
    }

    @Override
    void draw(Graphics g) {
        g.drawRect(Math.min(start.x, end.x), Math.min(start.y, end.y),
                Math.abs(start.x - end.x), Math.abs(start.y - end.y));
    }

}

工厂类:

 import java.awt.Point;

public class ShapeFactory {

    public static Shape creator(int choices, Point start, Point end) {

        if (choices == 1)
            return new Line(start, end);
        else if (choices == 2)
            return new Circle(start, end);
        else if (choices == 3)
            return new Rect(start, end);

        else return null;
    }

}

主类,这边把代码全贴上来,想运行的朋友可以运行一下:
有些功能还没写完整,比如保存之类。
目前思路是这样:在菜单上选择要画的图形,这时会给choices赋一个值,代表要画的图形。
在鼠标点下的时候记录初始坐标。
鼠标抬起时记录终止坐标,并添加一个图形对象到保存的Vector中,再进行重绘。

 import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Graphics;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JToolBar;
import javax.swing.UIManager;

/**
 * @description 画图程序(以松耦合为目的,以工厂模式为实现方法)
 * @date 2016-11-19
 */


/**
 * @description 窗口类,定义大小以及窗口形态
 */
public class MyPaint extends JFrame {

    private static final long serialVersionUID = 1L;
    private DrawPanel drawingArea;
    private int width = 800, height = 600;
    public static int choices = 1;

    // Constructor
    public MyPaint() {

        super("Drawing Program");

        /**
         * 定义菜单条的文件选项,设置四个选项分别为:
         * 新建、打开、保存以及退出
         */
        JToolBar buttonPanel; //按钮面板
        JButton line, circle, rect;
        JMenuBar bar = new JMenuBar(); //菜单条
        JMenu fileMenu = new JMenu("File");

        // 新建
        JMenuItem newItem = new JMenuItem("New");
        newItem.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent e) {
                        //如果被触发,则调用新建文件函数段
                    }});
        fileMenu.add(newItem);

        // 保存
        JMenuItem saveItem = new JMenuItem("Save");
        saveItem.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent e) {
                        //如果被触发,则调用保存文件函数段
                    }});
        fileMenu.add(saveItem);

        // 打开
        JMenuItem loadItem = new JMenuItem("Load");
        loadItem.addActionListener(
                new ActionListener() {
                    public void actionPerformed(ActionEvent e) {
                        //如果被触发,则调用打开文件函数段
                    }});
        fileMenu.add(loadItem);

        // 设置分割线 & 退出
        fileMenu.addSeparator();
        JMenuItem exitItem = new JMenuItem("Exit");
        exitItem.addActionListener(
                new ActionListener() {
                    public void actionPerformed(ActionEvent e) {
                        System.exit(0); //如果被触发,则退出画图板程序
                    }});
        fileMenu.add(exitItem);
        bar.add(fileMenu);

        /**
         * 定义菜单栏的帮助选项,对软件进行解释
         */
        JMenu helpMenu = new JMenu("Help");
        JMenuItem aboutItem = new JMenuItem("About");
        aboutItem.setMnemonic('A');
        aboutItem.addActionListener(
                new ActionListener() {
                    public void actionPerformed(ActionEvent e) {
                        JOptionPane.showMessageDialog(null,
                                "This is a mini drawing program",
                                " 画图板程序说明 ",
                                JOptionPane.INFORMATION_MESSAGE);
                    }});
        helpMenu.add(aboutItem);
        bar.add(helpMenu);

        /**
         * 按钮面板
         */
        buttonPanel = new JToolBar(JToolBar.HORIZONTAL);
        // 添加直线按钮以及点击事件
        line = new JButton("Line");
        line.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                repaint();
                choices = 1;
            }});

        // 添加圆按钮以及点击事件
        circle = new JButton("Circle");
        circle.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                repaint();
                choices = 2;
            }});

        // 添加矩形按钮以及点击事件
        rect = new JButton("Rect");
        rect.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                repaint();
                choices = 3;
            }});
        buttonPanel.add(line);
        buttonPanel.add(circle);
        buttonPanel.add(rect);

        setJMenuBar(bar);

        // 定义画图区域
        drawingArea = new DrawPanel();
        Container c = getContentPane();

        // 添加控件
        c.add(drawingArea, BorderLayout.CENTER);
        c.add(buttonPanel, BorderLayout.NORTH);

        // 设置窗口
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setSize(width, height);
        setVisible(true);
    }

    /**
     * Main
     */
    public static void main(String[] args) {
        try {
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        } catch (Exception e) {
            e.printStackTrace();
        }
        new MyPaint();

    }
}

/**
 * @description 画图面板类,提供鼠标监听器
 *
 */
class DrawPanel extends JPanel implements MouseListener {

    private static final long serialVersionUID = 1L;

    // 用于保存图形
    private Vector<Shape> shapes;

    // 用于记录鼠标画图时留下的两个点的坐标
    private Point start = new Point();
    private Point end = new Point();

    // Constructor
    public DrawPanel() {
        shapes = new Vector<>();
        setBackground(Color.white);
        this.addMouseListener(this);
    }


    @Override
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        for (int i = 0; i < shapes.size(); i++) {
            draw(g, shapes.elementAt(i));
        }
    }
    void draw(Graphics g, Shape shape) {
        shape.draw(g);
    }

    @Override
    public void mouseClicked(MouseEvent e) {
        // do nothing here
    }

    @Override
    public void mouseEntered(MouseEvent e) {
        // do nothing here
    }

    @Override
    public void mouseExited(MouseEvent e) {
        // do nothing here
    }

    //按下鼠标时记录坐标点
    @Override
    public void mousePressed(MouseEvent e) {
        start.x = e.getX();
        start.y = e.getY();
    }

    // 松开鼠标时记录坐标点并将图形画出来
    @Override
    public void mouseReleased(MouseEvent e) {
        end.x = e.getX();
        end.y = e.getY();
        shapes.add(ShapeFactory.creator(MyPaint.choices, start, end));

        repaint();
    }

}

1个回答

问题出在:

     private Point start = new Point();
    private Point end = new Point();

不能用,应该:
int x;
int y;

     public void mousePressed(MouseEvent e) {
       x = e.getX();
       y = e.getY();
    }
     public void mouseReleased(MouseEvent e) {
        int x1 = e.getX();
       int y1 = e.getY();
        shapes.add(ShapeFactory.creator(MyPaint.choices, new Point(x,y), new Point(x1,y1)));

        repaint();
    }
ListerCi
ListerCi 回复_1_1_7_: 谢谢,我想明白了,自始至终只有两个Point对象,其余的一直在引用这两个对象。
3 年多之前 回复
u011606457
_1_1_7_ 每次都要new Point(x,y),而不是一开始创建固定的两个
3 年多之前 回复
u011606457
_1_1_7_ 用同一个Point对象表示所有形状的点肯定是不够的,每次点坐标改变后,所有在shapes中的Shape 对象都会受到影响,应该每个shape对象有自己的Point对象
3 年多之前 回复
ListerCi
ListerCi 厉害了我的哥,不过为什么呢。。。Point哪里不对了。。。
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
请教java绘图API以及GUI方案

Hi folks: 我有一组模拟程序, 实时产生log数据. 现在想用寻找合适的java绘图和GUI方案, 来实时的读取log数据, 在程序运行过程中画出类似于GNUPLOT效果 (http://www.gnuplot.info/screenshots/index.html) 的科学图来, 请问诸位有什么推荐, 谢谢! Best Regards, ye

JAVA用Graphics画图重叠问题

JAVA画两个矩形,分别给一个不同的初始位置,但是运行出来,是重叠在一起的!这个问题应该怎样解决?

java画图后怎么保存?

java画图后怎么保存?应该是什么格式的,求各位大神指点指点啊,实在是不知道该怎么写了....

关于javaGUI组件update()方法

java问题:都说java swing组件中repaint()调用update(),update()调用paint(),我在继承自JFrame类里重写了update(),api里说重写update()应该在里面调用super.update()或直接在里面调用paint(),但我没有这样做,为什么在执行程序的时候却还是调用了paint()呢?求大神详细解答下

一个关于java的画图问题

,编写PaintExample类,要求继承JFrame,在窗口的中间位置画一个半径为30,填充色为蓝色的圆. 不会做。。有大神教下吗

java画图的相关问题

各位大虾~ 小弟要做一个小程序,是画一个流程图。通过输入一些参数,点击确定后显示图形。 我只知道画图用applet里的paint方法,但是要实现单击显示的事件如何写呢? 先行谢过各位了!

java能不能计算矩阵,并得出结果并画图?

我有一些数据,需要用excel写出矩阵,并用java计算画图?java能不能计算矩阵,并得出结果并画图?

MFC简易画图程序怎么新建保存

MFC vs2010,做一个简易的画直线矩形的画图程序,怎么实现新建保存功能,求大神给出详细说明及代码

java,paintComponent画图的时候把组件给覆盖了。该怎么解决?

我的程序的布局是这样的: 一个Jframe的(0,0)位置有一个大小(100,100)的JPanel面板,这个JPanel面板会进行画图。 有一个JMenuBar加在这个Jframe的(0,0)位置,大小为(50,50)。 当JPanel接收到信号调用paintComponent之后,这个JMenuBar就被覆盖了,得把鼠标放上去才会显示出来。 上述的问题该怎么解决呢?

关于vs2010MFC画图程序问题

我用单文档画图程序画了一条直线,把窗口移出屏幕再移进屏幕,直线就消失了,怎么让该直线重绘

关于JAVA编写画图工具里面的按钮

我想用JAVA编写画图工具可是不知道怎样可以让一个按钮按下之后保持按下的状态,而在按另一个按钮的时候他又会自动弹起来

关于java画图获取画笔的问题

我用Graphics g=getGraphics()获取画笔,却报错说g指向空,这时为什么啊![图片说明](https://img-ask.csdn.net/upload/201611/26/1480153009_954456.png)

java动画线程画图问题

我用java实现了一个球在窗体上运动并且碰到四个边框会反弹,我想再增加一个球进行不一样的轨迹运动,请教各位大神如何实现? 我按照自己的想法做了2个不同运动轨迹的球类,但是最后实现都只能看到最后一个被调用的球。java初学者求教!

Java仿写画图,内容不显示?

写了个功能简单的画图,可以使用画连续的曲线和圆,然而画曲线什么都不显示,画圆一松开鼠标圆就没了,求指出代码哪里错了 import java.awt.*; import java.io.*; import java.awt.event.*; import javax.swing.*; public class MyDraw extends JFrame{ static int current = 0; // choice of different drawings, 0 means pencil // 1 means circle static int index=0; // the number of drawings static int R,G,B; // the color of drawings static float Stroke=17.0f; // the stroke of drawings JLabel statusBar = new JLabel();// show the state of mouse drawings []indexList=new drawings[5000];// store drawings to paint DrawArea drawArea = new DrawArea(); public MyDraw(){ R=G=B=0;// initialize color //add components to main window add(drawArea); setVisible(true); setSize(1000,1000); createNewItem(); // new a drawing add(statusBar, BorderLayout.SOUTH); show(); } // new a drawing public void createNewItem(){ switch(current){ case 0 :indexList[index]=new pencil();break; case 1 :indexList[index]=new circle();break; } } public static void main(String args[]){ new MyDraw(); } // the panel to paint on class DrawArea extends JPanel{ public DrawArea(){ setBackground(Color.white); setCursor(new Cursor(Cursor.CROSSHAIR_CURSOR)); addMouseListener(new MousePolice1()); addMouseMotionListener(new MousePolice2()); } public void paintComponent(Graphics g){ super.paintComponent(g); Graphics2D g2d =(Graphics2D)g; for(int j=0;j<=index;j++){ pass(indexList[index],g2d); } } public void pass(drawings i,Graphics2D g2d){ i.draw(g2d); } } class MousePolice2 extends MouseAdapter{ public void mouseDragged(MouseEvent e){ statusBar.setText(" Mouse Dragged @:[" + e.getX() + ", " + e.getY() + "]"); if (current == 0) { indexList[index - 1].x1 = indexList[index].x2 = indexList[index].x1 = e.getX(); indexList[index - 1].y1 = indexList[index].y2 = indexList[index].y1 = e.getY(); index++; createNewItem(); } else { indexList[index].x2 = e.getX(); indexList[index].y2 = e.getY(); } repaint(); } } class MousePolice1 extends MouseAdapter{ public void mousePressed(MouseEvent e){ statusBar.setText(" Mouse Pressed @:[" + e.getX() + ", " + e.getY() + "]"); indexList[index].x1 = indexList[index].x2 = e.getX(); indexList[index].y1 = indexList[index].y2 = e.getY(); if (current == 0 ) { indexList[index].x1 = indexList[index].x2 = e.getX(); indexList[index].y1 = indexList[index].y2 = e.getY(); index++; createNewItem(); } } public void mouseReleased(MouseEvent e){ statusBar.setText(" Mouse Released @:[" + e.getX() + ", " + e.getY() + "]"); if (current ==0) { indexList[index].x1 = e.getX(); indexList[index].y1 = e.getY(); } indexList[index].x2 = e.getX(); indexList[index].y2 = e.getY(); repaint(); index++; createNewItem(); } } } //the father class drawings implements Serializable{ int x1,x2,y1,y2; void draw(Graphics2D g2d){} } // the drawing pencil class pencil extends drawings{ void draw(Graphics2D g2d){ g2d.setPaint(new Color(MyDraw.R,MyDraw.G,MyDraw.B)); g2d.setStroke(new BasicStroke(MyDraw.Stroke, BasicStroke.CAP_ROUND, BasicStroke.JOIN_BEVEL)); g2d.drawLine(x1, y1, x2, y2); } } class circle extends drawings { void draw(Graphics2D g2d) { g2d.setPaint(new Color(MyDraw.R,MyDraw.G,MyDraw.B)); g2d.setStroke(new BasicStroke(MyDraw.Stroke)); g2d.drawOval(Math.min(x1, x2), Math.min(y1, y2), Math.max(Math.abs(x1 - x2), Math.abs(y1 - y2)), Math.max(Math.abs(x1 - x2), Math.abs(y1 - y2))); } }

java swing 事件与画图

java代码 要求画一个圆,两个按钮。一个按钮变大,一个按钮变小。要求添加按钮 监听事件。点击变大圆半径变大,点击变小圆半径变小。设置键盘事件,按下 up,down,left,right圆会向相应的方向移动坐标

java 能在按钮JButton上面画图吗?下有代码

JButton btn = new JButton ("d:\\1.jpg") ; Graphics g = btn.getGraphics() ; g.drawString("aaa",0,0) ; this.add(btn) ; JFrame frame = new JFrame () ; frame.add(this) ; frame.setSize(50,80) ; frame.setVisible(true) ; 目的是想着在JButton上面画图,然后用画笔在上面写字符串。 至于为什么想着这样做,是想用用JButton里面的这个getgraphics的方法。 不过按照上面这样做会报错,空指针的错误,这是为什么呢?不能这样做吗?

java 实现一个画图编辑器打开PDF后,可以对PDF编辑,画线、写字

java 实现一个画图编辑器打开PDF后,可以对PDF编辑,画线、写字

java多线程画图,界面空白

尝试过使用事件分发线程,但还是空白,线程确实是运行着的。 import java.awt.Color; import java.awt.Graphics; import javax.swing.JPanel; import javax.swing.SwingUtilities; public class test1 extends JPanel { public void paint(Graphics g){ Thread t1=new Thread(new Runnable(){ public void run(){ g.fillRect(50, 50, 50, 50); for(int i=0;;i++){ g.setColor(Color.BLACK); g.fillRect(100+i*20,65,20,20); try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } g.setColor(Color.WHITE); g.fillRect(100+i*20,65,20,20); if((100+(i+1)*20)>=1500){ System.out.println("over1"); break; } } }}); Thread t2=new Thread(){ public void run(){ g.fillRect(50, 500, 50, 50); for(int i=0;;i++){ g.setColor(Color.BLACK); g.fillRect(100+i*20,515,20,20); try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } g.setColor(Color.WHITE); g.fillRect(100+i*20,515,20,20); if((100+(i+1)*20)>=1500){ System.out.println("over2"); break; } } }}; t1.start(); t2.start(); // SwingUtilities.invokeLater(t1); // SwingUtilities.invokeLater(t2); } public test1() { setBounds(50,50,1500,1000); setVisible(true); repaint(); } public static void main(String[] args) { new test1(); } }

java绘图闪屏问题,在以绘图的JFrame上加上JPanel画图

我在画了图的JFrame上再加个JPanel画图,就会出现图片闪屏闪得很严重,因为是在做小游戏想背景和人物分开来画如何解决这个问题 ``` import java.awt.*; import javax.swing.*; import java.util.*; public class Baground extends JFrame{ Image baground; Random random; int bgNum; People p=new People(); public Baground(){ JFrame frame=new JFrame(); this.setSize(1200,336*2-100); this.setVisible(true); this.setResizable(false); random=new Random(); random.setSeed(49849); bgNum=(int)(random.nextDouble()*10); System.out.print(bgNum); baground=Toolkit.getDefaultToolkit().getImage("素材/背景图片/"+bgNum+".gif"); this.getContentPane().add(p); } public void paint(Graphics g){ p.paint(g); int w=baground.getWidth(this); int h=baground.getHeight(this); g.drawImage(baground,1,0,w+400,h*2-100,this); } public static void main(String[] args){ new Baground(); } } class People extends JPanel{ Image peopleImage; public People(){ peopleImage=Toolkit.getDefaultToolkit().getImage("素材/people1/1.gif"); } public void paint(Graphics g){ super.paint(g); int a=peopleImage.getWidth(this); int b=peopleImage.getHeight(this); g.drawImage(peopleImage,150,350,this); } } ```

Python可以这样学(第一季:Python内功修炼)

董付国系列教材《Python程序设计基础》、《Python程序设计(第2版)》、《Python可以这样学》配套视频,讲解Python 3.5.x和3.6.x语法、内置对象用法、选择与循环以及函数设计与使用、lambda表达式用法、字符串与正则表达式应用、面向对象编程、文本文件与二进制文件操作、目录操作与系统运维、异常处理结构。

获取Linux下Ftp目录树并逐步绑定到treeview

在linux下抓取目录树,双击后获取该节点子节点(逐步生成)。另外有两个类,一个是windows下的(一次性获取目录树),一个是linux下的(足部获取目录树)

NS网络模拟和协议仿真源代码

NS网络模拟和协议仿真源代码,包含代码说明及协议分析

简单的NS3网络模拟仿真(计算机网络作业)

简单的NS3网络模拟仿真,内附有PPT演示。论文评述。以及简单的安装教程。

手把手实现Java图书管理系统(附源码)

【超实用课程内容】 本课程演示的是一套基于Java的SSM框架实现的图书管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的java人群。详细介绍了图书管理系统的实现,包括:环境搭建、系统业务、技术实现、项目运行、功能演示、系统扩展等,以通俗易懂的方式,手把手的带你从零开始运行本套图书管理系统,该项目附带全部源码可作为毕设使用。 【课程如何观看?】 PC端:https://edu.csdn.net/course/detail/27513 移动端:CSDN 学院APP(注意不是CSDN APP哦) 本课程为录播课,课程2年有效观看时长,大家可以抓紧时间学习后一起讨论哦~ 【学员专享增值服务】 源码开放 课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化

三个项目玩转深度学习(附1G源码)

从事大数据与人工智能开发与实践约十年,钱老师亲自见证了大数据行业的发展与人工智能的从冷到热。事实证明,计算机技术的发展,算力突破,海量数据,机器人技术等,开启了第四次工业革命的序章。深度学习图像分类一直是人工智能的经典任务,是智慧零售、安防、无人驾驶等机器视觉应用领域的核心技术之一,掌握图像分类技术是机器视觉学习的重中之重。针对现有线上学习的特点与实际需求,我们开发了人工智能案例实战系列课程。打造:以项目案例实践为驱动的课程学习方式,覆盖了智能零售,智慧交通等常见领域,通过基础学习、项目案例实践、社群答疑,三维立体的方式,打造最好的学习效果。

150讲轻松搞定Python网络爬虫

【为什么学爬虫?】 &nbsp; &nbsp; &nbsp; &nbsp;1、爬虫入手容易,但是深入较难,如何写出高效率的爬虫,如何写出灵活性高可扩展的爬虫都是一项技术活。另外在爬虫过程中,经常容易遇到被反爬虫,比如字体反爬、IP识别、验证码等,如何层层攻克难点拿到想要的数据,这门课程,你都能学到! &nbsp; &nbsp; &nbsp; &nbsp;2、如果是作为一个其他行业的开发者,比如app开发,web开发,学习爬虫能让你加强对技术的认知,能够开发出更加安全的软件和网站 【课程设计】 一个完整的爬虫程序,无论大小,总体来说可以分成三个步骤,分别是: 网络请求:模拟浏览器的行为从网上抓取数据。 数据解析:将请求下来的数据进行过滤,提取我们想要的数据。 数据存储:将提取到的数据存储到硬盘或者内存中。比如用mysql数据库或者redis等。 那么本课程也是按照这几个步骤循序渐进的进行讲解,带领学生完整的掌握每个步骤的技术。另外,因为爬虫的多样性,在爬取的过程中可能会发生被反爬、效率低下等。因此我们又增加了两个章节用来提高爬虫程序的灵活性,分别是: 爬虫进阶:包括IP代理,多线程爬虫,图形验证码识别、JS加密解密、动态网页爬虫、字体反爬识别等。 Scrapy和分布式爬虫:Scrapy框架、Scrapy-redis组件、分布式爬虫等。 通过爬虫进阶的知识点我们能应付大量的反爬网站,而Scrapy框架作为一个专业的爬虫框架,使用他可以快速提高我们编写爬虫程序的效率和速度。另外如果一台机器不能满足你的需求,我们可以用分布式爬虫让多台机器帮助你快速爬取数据。 &nbsp; 从基础爬虫到商业化应用爬虫,本套课程满足您的所有需求! 【课程服务】 专属付费社群+每周三讨论会+1v1答疑

cuda开发cutilDLL

包括cutil32.dll、cutil32D.dll、cutil32.lib、cutil32D.lib,以及附带的glew32.lib/freeglut.lib

深度学习原理+项目实战+算法详解+主流框架(套餐)

深度学习系列课程从深度学习基础知识点开始讲解一步步进入神经网络的世界再到卷积和递归神经网络,详解各大经典网络架构。实战部分选择当下最火爆深度学习框架PyTorch与Tensorflow/Keras,全程实战演示框架核心使用与建模方法。项目实战部分选择计算机视觉与自然语言处理领域经典项目,从零开始详解算法原理,debug模式逐行代码解读。适合准备就业和转行的同学们加入学习! 建议按照下列课程顺序来进行学习 (1)掌握深度学习必备经典网络架构 (2)深度框架实战方法 (3)计算机视觉与自然语言处理项目实战。(按照课程排列顺序即可)

Tensorflow与python3.7适配版本

tensorflow与python3.7匹配的最新库,更新了python3.7以后可以自行下载,或者去国外python的扩展包下载界面自行下载。

4小时玩转微信小程序——基础入门与微信支付实战

这是一个门针对零基础学员学习微信小程序开发的视频教学课程。课程采用腾讯官方文档作为教程的唯一技术资料来源。杜绝网络上质量良莠不齐的资料给学员学习带来的障碍。 视频课程按照开发工具的下载、安装、使用、程序结构、视图层、逻辑层、微信小程序等几个部分组织课程,详细讲解整个小程序的开发过程

专为程序员设计的数学课

<p> 限时福利限时福利,<span>15000+程序员的选择!</span> </p> <p> 购课后添加学习助手(微信号:csdn590),按提示消息领取编程大礼包!并获取讲师答疑服务! </p> <p> <br> </p> <p> 套餐中一共包含5门程序员必学的数学课程(共47讲) </p> <p> 课程1:《零基础入门微积分》 </p> <p> 课程2:《数理统计与概率论》 </p> <p> 课程3:《代码学习线性代数》 </p> <p> 课程4:《数据处理的最优化》 </p> <p> 课程5:《马尔可夫随机过程》 </p> <p> <br> </p> <p> 哪些人适合学习这门课程? </p> <p> 1)大学生,平时只学习了数学理论,并未接触如何应用数学解决编程问题; </p> <p> 2)对算法、数据结构掌握程度薄弱的人,数学可以让你更好的理解算法、数据结构原理及应用; </p> <p> 3)看不懂大牛代码设计思想的人,因为所有的程序设计底层逻辑都是数学; </p> <p> 4)想学习新技术,如:人工智能、机器学习、深度学习等,这门课程是你的必修课程; </p> <p> 5)想修炼更好的编程内功,在遇到问题时可以灵活的应用数学思维解决问题。 </p> <p> <br> </p> <p> 在这门「专为程序员设计的数学课」系列课中,我们保证你能收获到这些:<br> <br> <span> </span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">①价值300元编程课程大礼包</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">②应用数学优化代码的实操方法</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">③数学理论在编程实战中的应用</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">④程序员必学的5大数学知识</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">⑤人工智能领域必修数学课</span> </p> <p> <br> 备注:此课程只讲程序员所需要的数学,即使你数学基础薄弱,也能听懂,只需要初中的数学知识就足矣。<br> <br> 如何听课? </p> <p> 1、登录CSDN学院 APP 在我的课程中进行学习; </p> <p> 2、登录CSDN学院官网。 </p> <p> <br> </p> <p> 购课后如何领取免费赠送的编程大礼包和加入答疑群? </p> <p> 购课后,添加助教微信:<span> csdn590</span>,按提示领取编程大礼包,或观看付费视频的第一节内容扫码进群答疑交流! </p> <p> <img src="https://img-bss.csdn.net/201912251155398753.jpg" alt=""> </p>

实现简单的文件系统

实验内容: 通过对具体的文件存储空间的管理、文件的物理结构、目录结构和文件操作的实现,加深对文件系统内部功能和实现过程的理解。 要求: 1.在内存中开辟一个虚拟磁盘空间作为文件存储器,在其上实现一个简

机器学习初学者必会的案例精讲

通过六个实际的编码项目,带领同学入门人工智能。这些项目涉及机器学习(回归,分类,聚类),深度学习(神经网络),底层数学算法,Weka数据挖掘,利用Git开源项目实战等。

四分之一悬架模型simulink.7z

首先建立了四分之一车辆悬架系统的数学模型,应用MATLAB/Simulink软件建立该系统的仿真模型,并输入路面激励为随机激励,控制不同的悬架刚度和阻尼,选用最优的参数得到车辆悬架的振动加速度变化曲线

MFC一站式终极全套课程包

该套餐共包含从C小白到C++到MFC的全部课程,整套学下来绝对成为一名C++大牛!!!

C++语言基础视频教程

C++语言基础视频培训课程:本课与主讲者在大学开出的程序设计课程直接对接,准确把握知识点,注重教学视频与实践体系的结合,帮助初学者有效学习。本教程详细介绍C++语言中的封装、数据隐藏、继承、多态的实现等入门知识;主要包括类的声明、对象定义、构造函数和析构函数、运算符重载、继承和派生、多态性实现等。 课程需要有C语言程序设计的基础(可以利用本人开出的《C语言与程序设计》系列课学习)。学习者能够通过实践的方式,学会利用C++语言解决问题,具备进一步学习利用C++开发应用程序的基础。

Java8零基础入门视频教程

这门课程基于主流的java8平台,由浅入深的详细讲解了java SE的开发技术,可以使java方向的入门学员,快速扎实的掌握java开发技术!

HoloLens2开发入门教程

本课程为HoloLens2开发入门教程,讲解部署开发环境,安装VS2019,Unity版本,Windows SDK,创建Unity项目,讲解如何使用MRTK,编辑器模拟手势交互,打包VS工程并编译部署应用到HoloLens上等。

C/C++学习指南全套教程

C/C++学习的全套教程,从基本语法,基本原理,到界面开发、网络开发、Linux开发、安全算法,应用尽用。由毕业于清华大学的业内人士执课,为C/C++编程爱好者的教程。

pokemmo的资源

pokemmo必须的4个rom 分别为绿宝石 火红 心金 黑白 还有汉化补丁 资源不错哦 记得下载

test_head.py

本文件主要是针对使用dlib的imglab标注工具标记的目标检测框和关键点检测而生成的xml文件, 转换为coco数据集格式.

Java面试史上最全的JAVA专业术语面试100问 (前1-50)

前言: 说在前面, 面试题是根据一些朋友去面试提供的,再就是从网上整理了一些。 先更新50道,下一波吧后面的也更出来。 求赞求关注!! 废话也不多说,现在就来看看有哪些面试题 1、面向对象的特点有哪些? 抽象、继承、封装、多态。 2、接口和抽象类有什么联系和区别? 3、重载和重写有什么区别? 4、java有哪些基本数据类型? 5、数组有没有length()方法?String有没有length()方法? 数组没有length()方法,它有length属性。 String有length()方法。 集合求长度用

2019 AI开发者大会

2019 AI开发者大会(AI ProCon 2019)是由中国IT社区CSDN主办的AI技术与产业年度盛会。多年经验淬炼,如今蓄势待发:2019年9月6-7日,大会将有近百位中美顶尖AI专家、知名企业代表以及千余名AI开发者齐聚北京,进行技术解读和产业论证。我们不空谈口号,只谈技术,诚挚邀请AI业内人士一起共铸人工智能新篇章!

linux“开发工具三剑客”速成攻略

工欲善其事,必先利其器。Vim+Git+Makefile是Linux环境下嵌入式开发常用的工具。本专题主要面向初次接触Linux的新手,熟练掌握工作中常用的工具,在以后的学习和工作中提高效率。

DirectX修复工具V4.0增强版

DirectX修复工具(DirectX Repair)是一款系统级工具软件,简便易用。本程序为绿色版,无需安装,可直接运行。 本程序的主要功能是检测当前系统的DirectX状态,如果发现异常则进行修复

20行代码教你用python给证件照换底色

20行代码教你用python给证件照换底色

2019 Python开发者日-培训

本次活动将秉承“只讲技术,拒绝空谈”的理念,邀请十余位身处一线的Python技术专家,重点围绕Web开发、自动化运维、数据分析、人工智能等技术模块,分享真实生产环境中使用Python应对IT挑战的真知灼见。此外,针对不同层次的开发者,大会还安排了深度培训实操环节,为开发者们带来更多深度实战的机会。

我以为我对Mysql事务很熟,直到我遇到了阿里面试官

太惨了,面试又被吊打

相关热词 c#框体中的退出函数 c# 按钮透明背景 c# idl 混编出错 c#在位置0处没有任何行 c# 循环给数组插入数据 c# 多线程死锁的例子 c# 钉钉读取员工排班 c# label 不显示 c#裁剪影像 c#工作进程更新ui
立即提问