问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

用JAVA语言写一个二维平面图形(如长方形)的平移,旋转,缩放的程序.

发布网友 发布时间:2022-05-18 09:16

我来回答

3个回答

热心网友 时间:2023-10-13 07:43

import javax.swing.*;

import java.awt.*;

import java.awt.event.ActionEvent;

import java.awt.geom.*;

/**

 * @author Hardneedl

 */

class RectTransform extends JFrame {

    private static final Dimension minSize = new Dimension(300, 200);

    private static final Dimension maxSize = new Dimension(1024, 768);

    private static final Dimension preferredSize = new Dimension(600, 400);

    public Dimension getMaximumSize() {return maxSize;}

    public Dimension getMinimumSize() {return minSize;}

    public Dimension getPreferredSize() {return preferredSize;}

    public String getTitle() {return "Frame Title";}

    private AffineTransform af = new AffineTransform();

    private Stroke stroke = new BasicStroke(2.0f);

    private Rectangle rct = new Rectangle(40,140,200,140);

    private JComponent canvas = new JComponent(){

            protected void paintComponent(Graphics g) {

                super.paintComponent(g);

                g.setColor(Color.BLACK);

                g.fillRect(0,0,getWidth(),getHeight());

                Graphics2D g2d = (Graphics2D)g.create();

                g2d.setColor(Color.YELLOW);

                g2d.setTransform(af);

                g2d.setStroke(stroke);

                g2d.draw(rct);

                g2d.dispose();

            }

    };

    RectTransform() throws HeadlessException {

        init();

        doLay();

        attachListeners();

    }

    private void init() {

    }

    private void doLay() {

        Container container = getContentPane();

        JPanel panel = new JPanel(new FlowLayout(FlowLayout.CENTER,30,5));

        panel.add(new JButton( new AfAction("move", AffineTransform.getTranslateInstance(100,100)) ));

        panel.add(new JButton( new AfAction("rotate", AffineTransform.getRotateInstance(Math.PI/3,40,120) ) ));

        panel.add(new JButton( new AfAction("zoomIn", AffineTransform.getScaleInstance(2,2)) ));

        panel.add(new JButton( new AfAction("ZoomOut", AffineTransform.getScaleInstance(.5d,.5d)) ));

        panel.add(new JButton( new AfAction("Original", new AffineTransform()) ) );

        container.add(panel,BorderLayout.NORTH);

        container.add(canvas,BorderLayout.CENTER);

        pack();

    }

    private void attachListeners() {

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    }

    private class AfAction extends AbstractAction {

        private AffineTransform aff;

        private AfAction(String n,AffineTransform af) {

            super(n);

            this.aff = af;

        }

        public void actionPerformed(ActionEvent e) {

            af.setTransform(aff);

            if(canvas.isVisible()) canvas.paintImmediately(0,0,getWidth(),getHeight());

        }

    }

    public static void main(String[] args) {

        new RectTransform().setVisible(true);

    }

}

热心网友 时间:2023-10-13 07:43

import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Color;
public class LX3_3 extends Applet {
public void paint(Graphics g) {
g.setColor(Color.red);//设置红颜色
g.drawOval(35,35,100,60);//画椭圆(圆心、宽和高)
g.fillOval(200,15,60,100);//画具有填充色的圆
g.setColor(Color.blue);//设置蓝颜色
g.drawRect(20,130,80,80);//画矩形
g.fillRect(120,130,80,80);//画具有填充色的矩形
g.drawRoundRect(220,130,80,80,20,20);//画圆角矩形
g.fillRoundRect(320,130,80,80,20,20);//画具有填充色的 圆角矩形
}
}

该程序是在Myeclipse的环境下运行的
在二维平面内,画长方形等都只需要改变点的坐标即可实现平移,旋转,缩放
上面还加入了颜色,可供参考
水平有限,但希望对你有帮助

热心网友 时间:2023-10-13 07:44

同求!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
瑞安市塘下航达汽车电器配件厂怎么样? 意尔康公司总部地址在哪里 I only wish to face the sea, with spring blossoms是什么意思 征信五级分类是什么?被纳入黑名单有什么影响? 你好,如果诈骗分子利用你隐私视频和盗取你的通讯录好友威胁你要钱的话... ...对方有我的私密照片还有通讯录,要求我给他五千,要不然就发我家人,我... ...现在已经一个月没有性生活了。但是她平时对我很好 是怎么了?_百度... 女人半年没有性生活正常吗 谁能用英语给我写一段游戏里面的征婚启事? 征婚启事用英文怎么说? 不用心率带的运动手表其心率监测到底准不准 怎么用canvas在bitmap上画个边框? 家用选择哪种消毒液? 求一本小说,最近连载于晋江,是一本耽美主受无限流恐怖小说。 求灵异,玄幻,武侠,恐怖,推理之类的小说,要完结的,耿美的也行,最好男男暖昧 消毒液品牌应该怎么选择呢? 找本耽美恐怖小说 恐怖男同小说,里面有段情节是描写鬼市的,是什么书? 求主角是男的那种恐怖小说,多多益善!!! 饮水机清洗方法有哪些 恐怖bl 小说? 求以剧情为主但掺杂男男暧昧的恐怖悬疑冒险文 关于男男相恋的恐怖小说 喝红酒中干红与葡萄酒有什么区别,女孩 有个qq叫做Apple的 微信面对面转账叫苹果浩的卖手机的微商想知道他是不是骗子? 有没有人被卖手机的微商骗过?大家记住这个人是骗子 有什么系统能实现库位管理? 微商卖的几百块钱的苹果是不是骗人的?能不能用? 有了解QC5 100W氮化镓充电器充电稳定吗? 自制补益药酒有哪些配方 打算给老公买个智能手表,OPPO智能手表可好? 记得,但密码忘记了,登录不上该怎么办呢? 我的微信忘记密码了,是以前的手机号,现在停用了,我该怎么找回密码啊! 怎么才能办理高额信用卡? 洗菜盆的下水管是什么材质 茶多酚VS草木灰VS过期牙膏,那个去污渍效果好?请说出依据!它们分别是什么成分 北京通州区有可以退学生公交卡的地方吗 无限极牙膏去污里面含有化学成分 租借公共自行车的公交IC卡Z卡在哪里办理,里面的金额用不完走的时候可以退吗? 关于继电器的概念 关于继电器吸合电流和释放电流 关于继电器灭弧? iOS文明时代怎么玩破解版 读小诗《秋果》(秋天,成熟的果实低下了头。不是在自我陶醉,他是在想…………),根据诗歌表达的主旨... 你好,我的手机没有备份,微信也卸载过一次,请问我之前的微信聊天记录能不能恢复出来,*机关能恢复吗 qq群主忘记手机号如何解散或者退出qq群? ios8.1.1能玩破解游戏吗 是不是所有手机都不能备份国内*版微信所有版本所有用户的所有微信聊天记录? 在股市中,高手的年收益率一般是多少 年收益率5.18%是多少