Canvas制作(在画布四个角与中间位置画五个100*80,实心矩形要求颜色不同)

本文介绍了如何使用Canvas在HTML5画布的四个角落及中央位置绘制五个大小为100*80的实心矩形,每个矩形颜色各异,详细阐述了Canvas的绘图方法和颜色设置技巧。
摘要由CSDN通过智能技术生成

Canvas制作:

需求:在画布四个角与中间位置画五个100*80的矩形,实心矩形要求颜色不同

<style>
    body{
        text-align:center;
    }

    canvas{
        background-color:#ccc;
    }
</style>
<body>
    <h1>Canvas矩形</h1>
    
    <canvas id="canvas" width="500" height="400"></canvas>
</body>
<script>
    var canvas=document.getElementById('canvas');
   
    var ctx=canvas.getContext('2d');
    
    /*1.第一个左上角红色实心矩形*/
    ctx.fillStyle="#f00";
    ctx.fillRect(0,0,100,80);

    /*2.第二个右上角绿色实心矩形*/
    ctx.fillStyle="#0f0";
    ctx.fillRect(400,0,100,80);

    /*3.第三个右下角蓝色实心矩形*/
    ctx.fillStyle="#00f";
    ctx.fillRect(400,320,100,80);

    /*4.第四个左下角黑色实心矩形*/
    ctx.fillStyle="#000
以下是使用Java Swing库编写的示例代码,实现了使用菜单和按钮来控制绘图的功能,包括直线、实心椭圆、实心矩形和多边形。图形的位置和大小可以在程序中进行设定。 ```java import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class DrawingApp extends JFrame { private JButton lineButton, ellipseButton, rectangleButton, polygonButton; private JPanel canvasPanel; private int shapeType; // 用于记录用户选择的图形类型 public DrawingApp() { setTitle("绘图应用"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(500, 500); lineButton = new JButton("直线"); ellipseButton = new JButton("椭圆"); rectangleButton = new JButton("矩形"); polygonButton = new JButton("多边形"); canvasPanel = new JPanel() { @Override protected void paintComponent(Graphics g) { super.paintComponent(g); if (shapeType == 1) { // 直线 g.drawLine(50, 50, 200, 200); } else if (shapeType == 2) { // 实心椭圆 g.fillOval(100, 100, 200, 100); } else if (shapeType == 3) { // 实心矩形 g.fillRect(150, 150, 150, 100); } else if (shapeType == 4) { // 多边形 int[] xPoints = {100, 200, 300, 400}; int[] yPoints = {300, 200, 300, 200}; g.fillPolygon(xPoints, yPoints, 4); } } }; lineButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { shapeType = 1; // 设置图形类型为直线 canvasPanel.repaint(); // 重绘画布 } }); ellipseButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { shapeType = 2; // 设置图形类型为实心椭圆 canvasPanel.repaint(); // 重绘画布 } }); rectangleButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { shapeType = 3; // 设置图形类型为实心矩形 canvasPanel.repaint(); // 重绘画布 } }); polygonButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { shapeType = 4; // 设置图形类型为多边形 canvasPanel.repaint(); // 重绘画布 } }); JPanel buttonPanel = new JPanel(); buttonPanel.add(lineButton); buttonPanel.add(ellipseButton); buttonPanel.add(rectangleButton); buttonPanel.add(polygonButton); setLayout(new BorderLayout()); add(buttonPanel, BorderLayout.NORTH); add(canvasPanel, BorderLayout.CENTER); setVisible(true); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { new DrawingApp(); } }); } } ``` 在上述代码中,我们创建了一个继承自JFrame的DrawingApp类,用于展示图形界面。在构造函数中,我们设置了窗口的标题、大小和关闭操作。然后,我们创建了按钮和画布的JPanel,并将它们添加到窗口的适当位置。为每个按钮添加了ActionListener,以便在用户点击按钮时设置相应的图形类型,并重绘画布。在画布的paintComponent方法中,根据用户选择的图形类型进行相应的绘图操作。 请注意,上述代码中的绘图部分仅提供了简单的示例,您可以根据实际需求进行修改和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值