平移函数translate(double x,double y);
旋转函数rotate(double arc,double x,double y)//第一个参数是旋转角度,后二个参数是旋转中心点的横纵坐标参数

package DrawTest;import java.awt.BasicStroke;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GridLayout;
import java.awt.Shape;
import java.awt.geom.AffineTransform;
import java.awt.geom.Arc2D;
import java.awt.geom.Line2D;import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;@SuppressWarnings("serial")
public class LineTest2 extends JPanel{public static void main(String[] args) {// TODO Auto-generated method stubJFrame frame = new JFrame();frame.setLayout(new GridLayout(1,2,0,0));frame.setBounds(230, 30, 900, 950);LineTest2 panel = new LineTest2();panel.setPreferredSize(new Dimension(900,900));frame.add(panel);frame.setResizable(false);//设置frame不可调frame.setVisible(true);}public void paintComponent(Graphics g){super.paintComponent(g);Graphics2D g2 =(Graphics2D)g;drawLine(g2,50, 150, 100, 150);drawLine(g2,150, 150, 200, 150);drawArc(g2,100, 175, 50, 50, 0, -180);//画圆弧函数:前两个数字表示圆外切矩形的左上角坐标,中间两个数字表示外切矩形的宽和高度,后两个数字表示弧起始角和跨越角度}public void drawLine(Graphics2D g,double x1,double y1,double x2,double y2){BasicStroke bs_1=new BasicStroke(2,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL);g.setStroke(bs_1);g.setColor(Color.RED);AffineTransform transform = new AffineTransform();AffineTransform transform_1 = new AffineTransform();AffineTransform transform_2 = new AffineTransform();AffineTransform transform_3 = new AffineTransform();Line2D line = new Line2D.Double(x1, y1, x2, y2);g.draw(line);transrota(g,transform,line);transform_1.translate(0, 250);g.setTransform(transform_1);g.draw(line);transrota(g,transform_1,line);transform_2.translate(0, 500);g.setTransform(transform_2);g.draw(line);transrota(g,transform_2,line);transform_3.translate(0, 0);g.setTransform(transform_3);}public void drawArc(Graphics2D g,double x1,double y1,double w,double h,double x2,double y2){AffineTransform transform = new AffineTransform();AffineTransform transform_1 = new AffineTransform();AffineTransform transform_2 = new AffineTransform();AffineTransform transform_3 = new AffineTransform();Arc2D arc = new Arc2D.Double(x1, y1, w, h, x2, y2, Arc2D.OPEN);g.draw(arc);//画圆弧函数:前两个数字表示圆外切矩形的左上角坐标,中间两个数字表示外切矩形的宽和高度,后两个数字表示弧起始角和跨越角度,最后表示圆弧的闭合方式transrota(g,transform,arc);transform_1.translate(0, 250);g.setTransform(transform_1);g.draw(arc);transrota(g,transform_1,arc);transform_2.translate(0, 500);g.setTransform(transform_2);g.draw(arc);transrota(g,transform_2,arc);transform_3.translate(0, 0);g.setTransform(transform_3);}public void transrota(Graphics2D g2,AffineTransform transform,Shape line){for(int i=0;i<1;i++){transform.translate(300, 0);g2.setTransform(transform);g2.draw(line);}transform.rotate(Math.PI, 200, 187.5); // 围绕(200, 187.5)点旋转图形180度g2.setTransform(transform);g2.draw(line);for(int i=0;i<1;i++){transform.translate(300, 0);g2.setTransform(transform);g2.draw(line);}}
}

Graphics的平移与旋转相关推荐

  1. qgraphicsview鼠标移动图片_交互式QGraphicsView(平移/缩放/旋转)-阿里云开发者社区...

    简述 Graphics View提供了一个平台用于大量自定义 2D 图元的管理与交互框架包括一个事件传播架构支持场景 Scene 中的图元 Item 进行精确的双精度交互功能.Item 可以处理键盘事 ...

  2. 三角形的平移、旋转,在VC上实现(矩阵的应用)

    三角形的平移.旋转 原理很简单: 平移 将图形对象从一个位置(x, y)移到另一个位置(x',y')的变换. Tx= x' -x,Ty= y' -y称为平移距离. 平移变换公式为: 如下图所示: 旋转 ...

  3. 偏移shaderuv_Unity Shader UV平移、旋转、缩放效果

    平移.旋转.缩放.扭曲这几个效果在很多游戏场景中都会运用到,本篇文章就给大家分享下在Unity中基于Shader实现UV平移.旋转.缩放效果. 平移效果: 旋转: 缩放: 扭曲效果: shader代码 ...

  4. Unity3D 游戏引擎之脚本实现模型的平移与旋转(六)

    Unity3D 游戏引擎之脚本实现模型的平移与旋转 雨松MOMO原创文章如转载,请注明:转载至我的独立域名博客雨松MOMO程序研究院,原文地址:http://www.xuanyusong.com/ar ...

  5. C++实现坐标的平移和旋转

    C++实现二维坐标系的平移和旋转 有这样一个问题,平面内有一个点集,需要将坐标原点平移,到点集的某一点,然后在将坐标系旋转一定角度使得和点集中地另一个点重合. 坐标变换 坐标变换是空间实体的位置描述, ...

  6. createbitmap 旋转90度_小学数学,图形的运动,平移与旋转

    对称现象在我们生活中非常常见,小到我们的衣服,大到各种建筑.比如说北京天安门城楼也是对称的.对称的物体有个特点,看着比较美观.协调.如果是运动物体,它相对的平衡性也好.比如说飞机是对称的,我们放的风筝 ...

  7. mesh threejs 属性_threeJS创建mesh,创建平面,设置mesh的平移,旋转、缩放、自传、透明度、拉伸...

    这个小案例是当初我在学习的时候,小的一个小案例,代码还需要进一步优化:还请谅解~~:主要用到了threeJS创建mesh,创建平面,设置mesh的平移,旋转.缩放.自传.透明度.拉伸等这些小功能: 采 ...

  8. 第4章 Python 数字图像处理(DIP) - 频率域滤波6 - 二维DFT和IDFT的一些性质 - 平移和旋转、周期性、对称性

    目录 二维DFT和IDFT的一些性质 空间间隔和频率间隔的关系 平移和旋转 周期性 对称性 二维DFT和IDFT的一些性质 空间间隔和频率间隔的关系 Δu=1MΔT(4.69)\Delta u = \ ...

  9. 旋转函数_【视频课】:一次函数拓展应用(图象的平移、旋转、轴对称及5种解题方法)...

    请点击上方"出彩数学"可以免费订阅哦 停课不停学 ★  特别关注:今日头条.西瓜视频--初三中考解题方法与技巧.初一.初二的同步讲解视频,正在陆续上传,请关注今天头条或西瓜视频(下 ...

最新文章

  1. 为什么神经网络会把乌龟识别成步枪?现在的 AI 值得信任吗?
  2. .netcore2.0 发布CentOS7
  3. 记录如何防止跨站点脚本攻击之抄写
  4. 武汉工程大学计算机学院研究生难吗,武汉工程大学考研难吗?一般要什么水平才可以进入?...
  5. use 在php 用法中的总结
  6. 4011-基于邻接表的深度优先遍历(C++,取巧做法)
  7. 我该学习哪个人工智能系统
  8. C语言实现hello world代码
  9. 推荐2本书 《浪潮之巅》 和 《数学之美》
  10. 智慧城市:Web GIS 地图应用 IOC 运营中心
  11. 小爱音箱怎么装app_小爱音箱最新版本下载  小爱音箱app介绍_2113手游
  12. 关于file_get_contents(php://input)
  13. github android涂鸦,Android 涂鸦最佳实践
  14. 关于四川华图省考面试 1:1职位保护的承诺函
  15. 《Thinking In Java》作者:不要使用并发!
  16. 利用镜像解决一系列下载速度慢的问题
  17. 华擎计算机主板配置,组装的华擎主板win10改win7系统及bios设置教程
  18. 第6期丨一周电商零售News10条(2.15-2.21)淘宝在微信“开店”/人民网评茶颜悦色被指侮辱女性/最高检重点监督直播带货
  19. 德语语法笔记——虚拟式
  20. Android Studio:Caused by: java.lang.ClassNotFoundException: Didn‘t find class “...“on path: DexPath*

热门文章

  1. 全球5G发展洞察2022(中)
  2. latex参考文献居中_LaTeX中参考文献管理以及注意事项
  3. jsp中去掉超链接下划线吗,在JSP中,若要在JSP正确使用标签: ,在jsp中声称的taglib指令为: 下划线处应该是() 答案:x...
  4. css3半圆弧线,css3实现画半圆弧线的示例代码
  5. vue后台系统管理项目-角色权限分配管理功能
  6. 智学网登录不了java_智学网常见问题解决方法介绍
  7. STM32F103CB控制超声波HCSR04可用程序
  8. hdu多校第七场 1011 (hdu6656) Kejin Player 概率dp
  9. MFC应用程序中添加控制台窗口---debug输出窗口
  10. 好听的名字 - 收藏给宝宝起名字用