美文网首页
流浪地球2 影评

流浪地球2 影评

作者: 不知不怪 | 来源:发表于2023-01-27 12:50 被阅读0次

看过电影全方位无死角的感觉很好,我就画一面国旗表达一下此刻的心情吧。

package com.gzz;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Shape;
import java.awt.Toolkit;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.geom.AffineTransform;
import java.awt.geom.GeneralPath;
import javax.swing.JFrame;

public class RedFlag extends JFrame {
    private static final long serialVersionUID = 1L;
    private static final Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
    private static final double maxR = 0.15, minR = 0.05;
    private static final double maxX = 0.25, maxY = 0.25;
    private static final double[] minX = { 0.50, 0.60, 0.60, 0.50 };
    private static final double[] minY = { 0.10, 0.20, 0.35, 0.45 };

    public static void main(String[] args) {
        RedFlag redFlag = new RedFlag();
        redFlag.addMouseListener(new MouseAdapter() {
            public void mouseClicked(MouseEvent e) {
                System.exit(0);
            }
        });
        redFlag.setUndecorated(true);
        redFlag.setExtendedState(JFrame.MAXIMIZED_BOTH);
        redFlag.setVisible(true);
    }

    @Override
    public void paint(Graphics g) {
        Graphics2D graphics2D = (Graphics2D) g;
        graphics2D.setPaint(Color.RED);
        graphics2D.fillRect(0, 0, screen.width, screen.height);// 画旗面
        double ox = screen.height * maxX, oy = screen.height * maxY;
        graphics2D.setPaint(Color.YELLOW);
        graphics2D.fill(createPentacle(ox, oy, screen.height * maxR, -Math.PI / 2));// 画大☆
        for (int i = 0; i < 4; i++) {// 画小★
            double sx = minX[i] * screen.height, sy = minY[i] * screen.height;
            double theta = Math.atan2(oy - sy, ox - sx);
            graphics2D.fill(createPentacle(sx, sy, screen.height * minR, theta));
        }
    }

    /**
     * 创建一个五角星形状. 该五角星的中心坐标为(sx,sy),中心到顶点的距离为radius,其中某个顶点与中心的连线的偏移角度为theta(弧度)
     */
    private Shape createPentacle(double sx, double sy, double radius, double theta) {
        final double arc = Math.PI / 5;
        final double rad = Math.sin(Math.PI / 10) / Math.sin(3 * Math.PI / 10);
        GeneralPath path = new GeneralPath();
        path.moveTo(1, 0);
        for (int i = 0; i < 5; i++) {
            path.lineTo(rad * Math.cos((1 + 2 * i) * arc), rad * Math.sin((1 + 2 * i) * arc));
            path.lineTo(Math.cos(2 * (i + 1) * arc), Math.sin(2 * (i + 1) * arc));
        }
        path.closePath();
        AffineTransform atf = AffineTransform.getScaleInstance(radius, radius);
        atf.translate(sx / radius, sy / radius);
        atf.rotate(theta);
        return atf.createTransformedShape(path);
    }

}
五星红旗

这里用了大量三角函数,弧度,角度,平面坐标系,为了教会上小学三年级的儿子画国旗,于是我把程序简化了一下。

package com.gzz.common.base;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Toolkit;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
public class RedFlag2 extends JFrame {
    private static final long serialVersionUID = 1L;
    private static final Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
    private static final int scale = screen.width / 50;
    public static void main(String[] args) {
        RedFlag2 redFlag = new RedFlag2();
        redFlag.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                System.exit(0);// 单击退出
            }
        });
        redFlag.setUndecorated(true);// 隐藏标题栏
        redFlag.setExtendedState(JFrame.MAXIMIZED_BOTH);// 最大化
        redFlag.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        redFlag.setVisible(true);
    }
    @Override
    public void paint(Graphics g) {
        Graphics2D graphic = (Graphics2D) g;
        graphic.setPaint(Color.RED);
        graphic.fillRect(0, 0, screen.width, screen.height);// 画旗面
        graphic.setPaint(Color.YELLOW);
        // 画大星
        graphic.setFont(new Font("宋体", Font.BOLD, scale * 8));
        graphic.drawString("★", scale * 4, scale * 11);
        // 画小星
        graphic.setFont(new Font("宋体", Font.BOLD, scale * 3));
        graphic.drawString("★", scale * 11, scale * 4);
        graphic.setFont(new Font("宋体", Font.BOLD, scale * 3));
        graphic.drawString("★", scale * 14, scale * 8);
        graphic.setFont(new Font("宋体", Font.BOLD, scale * 3));
        graphic.drawString("★", scale * 14, scale * 12);
        graphic.setFont(new Font("宋体", Font.BOLD, scale * 3));
        graphic.drawString("★", scale * 11, scale * 16);
    }
}

相关文章

  • 流浪地球2 影评

    看过电影全方位无死角的感觉很好,我就画一面国旗表达一下此刻的心情吧。 这里用了大量三角函数,弧度,角度,平面坐标系...

  • 开脑洞,重写《流浪地球》缺失的关键故事线和情感线

    注:本文为《流浪地球》开脑洞影评之一,后面还有之二,敬请关注! 【01】 2月19日晚9时许,电影《流浪地球》官方...

  • 流浪地球豆瓣恶评如潮,差评原因令人难以接受!!!

    忍无可忍!流浪地球恶评拉低影评下限 《流浪地球》由刘慈欣同名科幻作品《流浪地球》改编,郭帆导演,演员吴京带资入组,...

  • 影评《流浪地球》

    最近很认真的在回顾经典的灾难片,难得有一部评分靠前的国产片是《流浪地球》。大家记得的主演是吴京。 不同于欧美大片,...

  • 《流浪地球》影评

    这部影片制作的比较精细,算是国产中比较好的大型科幻片。从电影院出来的时候,我听到后面有的人在说。 确实这部片的特效...

  • 流浪地球影评

    首先先大胆假设一下未来的五十年甚至是几百年会不会是像影片中一样发展,我们会不会有一天真的有面临移民的一天,会不会也...

  • 影评|《流浪地球》

    影评|《流浪地球》 ——爱与命运的交织,是真正推动地球流浪的力量 春节档万人空巷级影片《流浪地球》自上线以来便引起...

  • 《流浪地球》影评

    带了爸爸妈妈去看了这部电影,初衷一是喜欢刘慈欣,二是喜欢吴京,三是为国产科幻捧场。 1、代际观影差异 看电影的过程...

  • 《流浪地球》影评

    哗啦啦的海浪把活泼可爱的小鱼拍打到岸上,它不停的啪嗒啪嗒的摆动着躯体,希望能通过挪动的方法回到海里,经过它千辛...

  • 《流浪地球》影评

    个人与家庭 《流浪地球》是中国科幻电影的里程碑式作品,也是刘慈欣的作品第一次真正意义上登上荧幕。 俗话说:“人心齐...

网友评论

      本文标题:流浪地球2 影评

      本文链接:https://www.haomeiwen.com/subject/zyrehdtx.html