也谈VB.NET中心旋转图像
发布日期:2021-06-29 03:43:48
浏览次数:2
分类:技术文章
本文共 1635 字,大约阅读时间需要 5 分钟。
今天在网上看有些人的文章,很是不怎么样。实在忍不住了。
简单的写了一下下。
鼠标拖拽旋转。任意角度。。
Public Class Form1
Dim bmp As Bitmap Dim bmpsize As Single Dim gr As Graphics Dim pb As Point Dim po As PointFPrivate Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
bmpsize = Math.Sqrt(Me.Icon.Width ^ 2 + Me.Icon.Height ^ 2) bmp = New Bitmap(CInt(bmpsize), CInt(bmpsize)) gr = Graphics.FromImage(bmp) po = New PointF((bmpsize - Me.Icon.Width) / 2, (bmpsize - Me.Icon.Height) / 2) gr.DrawIcon(Me.Icon, po.X, po.Y) PictureBox1.Image = bmp End SubPrivate Sub PictureBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown
pb = e.Location End SubPrivate Sub PictureBox1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove
If Not pb = Point.Empty Then 'O/-----------B ' / ' / ' / ' E Dim vOB, vOE As Windows.Vector vOB = New Windows.Vector(bmpsize / 2, bmpsize / 2) - New Windows.Vector(pb.X, pb.Y) vOE = New Windows.Vector(bmpsize / 2, bmpsize / 2) - New Windows.Vector(e.X, e.Y) '可以用叉乘求面积,正负号代表旋转方向,而后正弦定理求角度, Dim O As Double = Windows.Vector.AngleBetween(vOB, vOE) '若角度为有效值 gr.TranslateTransform(bmpsize / 2, bmpsize / 2) '移动坐标至图像中心 gr.RotateTransform(O) '按角度旋转 gr.TranslateTransform(-bmpsize / 2, -bmpsize / 2) '移回 gr.Clear(Color.Transparent) '清除原有图像 gr.DrawIcon(Me.Icon, po.X, po.Y) '绘制新图像 PictureBox1.Image = bmp pb = e.Location End IfEnd Sub
Private Sub PictureBox1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseUp
pb = Point.Empty End SubEnd Class
转载地址:https://blog.csdn.net/zcsor/article/details/3087316 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2024年04月10日 08时36分31秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Atitit 开发效率大法 v0 t025.docx Atitit 提升开发效率几大策略 目录 1. 提升效率三原则 3 1.1. 更少的代码量简化 3 1.2. 优化配置减少等待 3 1.3.
2019-04-29
Atitit mybatis的扩展使用sql udf,js java等语言 目录 1.1. 默认,mybatis使用xml,sql等语言来书写业务流程 1 2. 使用ognl调用java函数 1 3
2019-04-29
Atitit if else 选择决策流程ast对比 sql java 表达式类型 binaryExpression hase left and rit expr 目录 1.1. Sql 1
2019-04-29
Atitit 数据库存储引擎 目录 1.1. BLACKHOLE 黑洞引擎 1 1.2. Myisam innodb 1 1.3. Archive 档案类 1 1.4. Fed 连接引擎 2 1.
2019-04-29
Atitit sql注入的防范 目录 1.1. 检查数据类型 1 2. 有限操作DML 1 2.1. 限制执行函数黑名单机制 2 2.2. 限制执行系统sp 2 2.3. 限制数据查询语句类型,只能
2019-04-29
Atitit 自然语言与人工语言的语法构建ast的异同点 目录 1. 语言节点gaishu。。 2 1.1. 节点、函数数量大约200个 2 1.2. 关键词节点 是 有 的 3 1.3. 标识符
2019-04-29
Atitit 效率提升法细则 v3 t028.docx Atitit 提升效率细则 目录 1. 目标 2 1.1. 配置化增加扩展性 尽可能消除编译 方便增加 调整业务逻辑 2 1.2. 统一接口
2019-04-29
Atitit 工程师程序员技术级别对应表与主要特征 P1--p6 说明 类别 职称 对应技术标志 P5 高级工程师 工程师类 一般四五年 P6 资深开发 工程师类 78年经历 P7 P7
2019-04-29
paip.activex控件在WEB中使用流程与工具
2019-04-29
paip.软件及网站项目开发效率低下的思索与改进
2019-04-29
Atitit 可移植性之道attilax著
2019-04-29
paip.截屏功能流程说明
2019-04-29
Atiitt uke兼wag集团2017年度成果报告总结 attilax著 1. 组织机构进一步完善 8大首席部门 1 2. 事业部进一步完善,以及一百多个事业部了 1 3. 企业文化进一步完善 1
2019-04-29
Atititi ui之道 attilax著 v3 s11.docx 1. 概览 2 1.1. 软件设计可分为两个部分:编码设计与UI设计 2 2. 用户界面设计的三大原则是:置界面于用户的控制之下;
2019-04-29
Atitit 集团与个人的完整入口列表 attilax的完整入口 1. 集团与个人的完整入口列表 1 2. 流量入口概念 2 3. 流量入口的历史与发展 2 1.集团与个人的完整入口列表
2019-04-29
Atitit 网络编程之道
2019-04-29
Atiitt attilax掌握的前后技术放在简历里面.docx
2019-04-29
Atiitt 文档处理之道 attilax著
2019-04-29
Atiitt 可视化 报表 图表之道 attilax著 Atitit.可视化与报表原理与概论 1. 信息可视化 1 2. Gui可视化 2 2.1. atitit 知识的可视化.docx 2
2019-04-29
paip.c#图片裁剪
2019-04-29