首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【Java AWT 图形界面编程】使用鼠标滚轮缩放 Canvas 画布中绘制的背景图像 ( 绘制超大图像 + 鼠标拖动 + 鼠标滚轮缩放 + 以当前鼠标指针位置为缩放中心 示例 )

一、鼠标滚轮缩放的中心点设置为当前鼠标中心点 - 要点分析 ---- 鼠标指针指向界面中的 Canvas 画布某个位置 , Canvas 画布中绘制着一张超大图片 , 以该位置为中心 , 滑动鼠标滚轮时进行缩放...; 使用鼠标滚轮缩放后 , 在 Canvas 中绘制的图片的尺寸肯定是放大或者缩小了 , 尺寸发生了改变 ; 图片缩放时 , 鼠标指针指向一个位置 , 该位置对应着一个当前 Canvas 画布中的 x...在鼠标滚轮缩放完成后 , 再根据鼠标指针指向的位置和比例 , 结合图片缩放后的尺寸 , 重新计算画布偏移的位置 , 以达到鼠标指向的图片元素位置基本保持不变的目的 ; /** * 计算新的比例...+ 鼠标拖动 + 鼠标滚轮缩放 + 以当前鼠标指针位置为缩放中心 示例 ---- 1、代码示例 import javax.swing.*; import java.awt.*; import java.awt.event.MouseAdapter...// 创建 JFrame 窗口 JFrame frame = new JFrame("Large Canvas"); // 设置窗口关闭行为 点击右上角关闭按钮

2.8K10

EasyX图形库学习(一)

可惜在 VC 里面只能做一些文字性的练习题,想画条直线或一个圆都很难,例如需要注册窗口类、建消息循环等等,初学者会受严重打击的。初学编程想要绘图就得用 TC,很是无奈。...这些函数通常用于图形库或图像处理库中,以提供图像的加载、保存、获取、绘制和设备设置等功能。通过这些函数,可以读取和保存图片文件,从当前绘图设备中获取图像,并在指定位置绘制图像。...setcapture 设置允许捕获绘图窗口外的鼠标消息,使得即使鼠标在绘图窗口外也能接收到相关的鼠标事件。...releasecapture 设置禁止捕获绘图窗口外的鼠标消息,恢复正常的鼠标事件处理机制。 这个表格列出了与消息处理相关的函数和数据类型。这些函数通常用于图形库或绘图API中,以提供消息处理功能。...EX_NOCLOSE 2 禁用关闭按钮。 EX_NOMINIMIZE 4 禁用最小化按钮。 EX_DBLCLKS 8 支持双击事件(如:双击打开)。

48610
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    手写原生代码专题 | 简易手写画板(二)

    = 'orange'; // 填充 ctx.fill(); 二、编写HTML代码 复习完基础知识后,我们开始编写具体的代码,HTML 结构比较简单,如视频示例所示,一个画布、两个增加线条粗细的加减按钮...四、编写JS脚本 最后进入代码的核心部分,编写 JS 脚本,这里我们只是简单的实现画直线,为啥会用画圆形的API,主要为了让线条更加有手绘的感觉,在画线停顿的地方,有停顿的点,以线条的粗细为半径的圆点。...具体的思路如下: 定义DOM对象变量:获取画布、增减线条粗细的按钮、颜色控件、显示线条粗细值、清除按钮 然后定义一些变量值:初始化线条粗细的长度、鼠标是否按下的状态、线条颜色的默认值、颜色变量、鼠标的位置...x,y值,先以线条的宽度绘制圆形,然后以鼠标按下时的 x,y 的值为直线的起点,鼠标移动时获取鼠标的 x,y 值为终点绘制直线。...绘制完成后更改x,y的值为当前鼠标的位置(不断更新直线的起点),这样就可以一直拖动鼠标绘制直线。

    1.5K20

    屏幕缩放和注释工具(ZoomIt)

    ZoomIt 在托盘中不显眼地运行,并使用可自定义的热键激活,以放大屏幕区域,在缩放时四处移动,并绘制缩放的图像 我写了 ZoomIt 以满足我的具体需求,并在所有演示文稿中使用它 ZoomIt 适用于所有版本的...缩小 鼠标向下滚动或向下键 在缩放模式下) 时,"开始"菜单绘图 ( Left-Click 在缩放模式下停止绘图 () Right-Click 在缩放模式) 中不"开始"菜单绘图 ( Ctrl + 2...(绘图模式) 增加/减少线条和光标大小 Ctrl + 鼠标向上/向下或箭头键 将光标居中 (绘图模式) 空格键 白板 (绘图模式) W 黑板 (绘图模式) K 键入文本 T ) 增加/减小字体大小 (...键入模式 Ctrl + 鼠标向上/向下或箭头键 红色笔 R 绿色笔 G 蓝色笔 B 黄色笔 Y 橙色笔 O 粉色笔 P 绘制直线 按住 Shift 绘制矩形 按住 Ctrl 绘制省略号 “按住”选项卡...+ 3 增加/减少时间 Ctrl + 鼠标向上/向下或箭头键 最小化计时器 (而不暂停计时器) Alt + Tab 最小化时显示计时器 缩放图标上的Left-Click 实时缩放模式 Ctrl + 4

    1.2K30

    【Java AWT 图形界面编程】使用小键盘按键缩放 Canvas 画布中绘制的背景图像 ( 键盘按键监听 + 绘制超大图像 + 鼠标拖动 + 鼠标滚轮缩放 + 以当前鼠标指针位置为缩放中心 示例 )

    } }); 二、键盘按键监听 + 绘制超大图像 + 鼠标拖动 + 鼠标滚轮缩放 + 以当前鼠标指针位置为缩放中心 示例 ---- 在 【Java AWT 图形界面编程...】Canvas 中绘制超大图片 ( 使用鼠标拖动查看全图 | 设置 JFrame 窗口自动关闭 | 获取并绘制图片 | 鼠标拖动计算位移 | 画布偏移 ) 博客中 , 绘制了超大图像 , 可以使用鼠标拖动..., 拖动的效果也随之缩放, 如 缩小画布后 , 移动鼠标 , 移动距离对应的缩放效果也随之缩小 ; 在 【Java AWT 图形界面编程】使用鼠标滚轮放大缩小 Canvas 画布中绘制的背景图像 (...// 滚轮向上,放大画布 scale *= 1.1; } else { // 滚轮向下...// 创建 JFrame 窗口 JFrame frame = new JFrame("Large Canvas"); // 设置窗口关闭行为 点击右上角关闭按钮

    1.8K20

    微软 ZoomIt 屏幕放大和注释工具--教学演示神器

    我编写了 ZoomIt 以满足我的具体需求,并在我的所有演示中使用它。 ZoomIt 适用于所有版本的 Windows,你可以在平板电脑上使用触控和笔输入进行 ZoomIt 绘图。...函数 快捷键 缩放模式 Ctrl + 1 放大 鼠标向上滚动或向上箭头 缩小 鼠标向下滚动或向下箭头 开始绘制(在缩放模式下) 左键单击 停止绘制(在缩放模式下) 右键单击 开始绘制(不在缩放模式下)...Ctrl + 2 增加/减少线条和光标大小(绘图模式) Ctrl + 鼠标向上/向下滚动或箭头键 将光标居中(绘图模式) 空格键 白板(绘图模式) W Blackboard(绘图模式) K 键入文本(左对齐...) T 键入文本(右对齐) Shift + T 增加/减小字号(键入模式) Ctrl + 鼠标向上/向下滚动或箭头键 红笔 R 绿笔 G 蓝笔 B 黄笔 Y 橙笔 O 粉笔 P 绘制直线 长按 Shift...,保存为 MP4(Windows 10 2019 年 5 月更新及更高版本) Ctrl + Alt + 5 显示倒计时计时器 Ctrl + 3 增加/减少时间 Ctrl + 鼠标向上/向下滚动或箭头键

    50840

    如何用Scratch 3绘制矢量图形 【Gaming】

    使用照片或正在绘制的对象的实时模型可能会有帮助。 我将通过解释如何绘制苹果来演示在Scratch中绘制矢量精灵的所有要点,但是您可以将此方法应用于任何要创建的对象。...警告:如果单击绘图屏幕底部的“转换为位图”按钮,则插图将变成像素化位图图像,并且无法将其还原为矢量。 画苹果形状 1. 选择一个空的精灵画布,然后选择圆形工具。通过单击空画布并拖动鼠标创建一个圆。...稍微向上抬起原始底部中心节点以创建缩进。 图片13.png 6. 现在以类似的方式向圆的顶部添加两个节点。稍微向下降低原始上止点节点以创建缩进。 7. 继续调整和添加节点,直到对苹果形状满意为止。...要将茎移到苹果后面,请单击画布上方的“后退”按钮。 图片14.png 添加突出显示形状 1. 选择线条工具。在苹果形状上画一个三角形,把每一条新线和前一条线的末端连接起来。...这将使线条变成一个完整的形状。 2. 使用箭头工具选择三角形,并使用填充工具将其更改为较浅的颜色,例如白色。 3. 使用“节点”工具添加和调整节点以创建高光形状。如果节点过于尖锐,可以将其更改为曲线。

    5.6K00

    EasyX图形库学习(三、用easyX实现移动的小球、图片-加载、输出)

    // 图片的拉伸宽度 int nHeight = 0, // 图片的拉伸高度 bool bResize = false // 是否调整 IMAGE 的大小以适应图片...: button函数用于绘制并检测按钮是否被点击。...当鼠标位于按钮上时,按钮的背景色会变为深蓝色;否则为浅灰色。 如果在按钮上检测到鼠标左键按下,函数会返回true。 在主循环中,我们创建了两个按钮:“Start Game”和“End Game”。...在循环中,根据用户按键的消息来更新小球的方向。 每次循环都会更新小球的位置,并重新绘制它。...//设置窗口的背景颜色 setbkcolor(YELLOW); //用设置的背景颜色填充整个窗口 cleardevice(); //窗口的坐标体系:窗口左上角是坐标原点,X轴向右增大,y轴向下增大

    45410

    Python 绘制交互式股票K线图

    (t, open, close, min, max) p.drawLine(QtCore.QPointF(t, min), QtCore.QPointF(t, max)) # 绘制线条...) # 在图形部件中添加水平线条 这个方法将是我们点击【查询】按钮,对点击信号进行处理时需要调用的方法,它是在图形界面窗口中显示K线图的关键。...我们继续创建一个方法,用来调用plotkline()方法,并将其连接到【查询】按钮的点击信号上: # 查询按钮信号槽 def query_slot(self): try:...四、绘制十字光标 上面的图形界面程序生成了股票的K线图,但是我们却不能方便地查看到具体一天的价格变动,一个十字光标的鼠标指示必需的,我们接着来实现它。...# 响应鼠标移动绘制十字光标 def print_slot(self, event=None): if event is None: print("事件为空

    2.8K42

    canvas之画板简单功能实现

    alert('你按下的位置是:'+old_left+','+old_top); cv.beginPath();//开启路径 cv.moveTo(old_left,old_top);//起始点位置 //给画板(鼠标...,取消鼠标移动事件 c.onmouseup=function(){ c.onmousemove=null; } //给颜色加改变事件 cor.onchange=function(){ cv.strokeStyle...;//span显示当前线条的粗细值 } //给橡皮按钮加事件 clear.onclick=function(){ alert('尽情的擦黑板吧'); cv.strokeStyle="#7B68EE";...} 具体的内容都包含注释内容了,包含了线条颜色可以获取input内的颜色value值,线条粗细使用range的value控制 橡皮功能真实效果是把线条的颜色修改背景色...,产生错乱,被清除之前的内容结束鼠标按下事件进行线条绘制,移动鼠标出现线条路径,当没有点击鼠标,将移动事件取消,不会实现线条,满足鼠标按下和移动鼠标才能进行线条绘制!

    73530

    原生小案例:如何使用HTML5 Canvas构建画板应用程序

    使用 mousedown 事件开始绘制,使用 mousemove 事件在鼠标移动时绘制,使用 mouseup 事件在释放鼠标按钮时停止绘制,使用 mouseout 事件在光标移出画布时停止绘制。...startDrawing 设置绘图标志并保存起始位置, draw 根据鼠标移动从上一位置到当前位置绘制线条, stopDrawing 重置绘图标志。...变量 isDrawing 是一个布尔标志,指示用户当前是否正在绘制,而 lastX 和 lastY 存储光标或指针的先前坐标,使得可以在画布上绘制平滑且连续的线条。...例如,当您在画布上点击并拖动鼠标时,将调用 startDrawing 、 draw 和 stopDrawing 函数,这些函数跟踪鼠标坐标并在画布上绘制线条。...它为用户提供了一个画布,可以绘制、绘画和应用不同的效果,以创建视觉组合。

    52821

    如何使用JavaScript实时获取鼠标位置?

    获取鼠标位置:clientX和clientY属性 要实现鼠标位置的实时追踪,我们可以监听mousemove事件,每当鼠标移动时,这个事件就会被触发。...实际业务场景应用 想象一下,当用户在一个在线绘图应用中绘画时,我们需要实时获取他们的鼠标位置,以便绘制出连续的线条。或者在一个互动地图应用中,我们需要知道用户的鼠标位置,以便显示特定区域的信息。...绘制动态线条 下面是一个实际业务场景中的代码示例:在网页上绘制用户鼠标移动的路径。...ctx.stroke(); ctx.beginPath(); ctx.moveTo(clientX, clientY); } }); 在这个例子中,我们使用元素来绘制用户鼠标移动的路径...当用户按下鼠标按钮时,开始绘图;当用户松开按钮时,停止绘图。通过监听mousemove事件,我们获取鼠标位置,并使用canvas的绘图方法在页面上绘制出用户的鼠标轨迹。

    30410

    初识EasyX图形编程

    每个颜色部分的值都是0~255 5.坐标和设备 坐标默认的原点在窗口的左上角,X轴向右为正,Y 轴向下为正,度量单位是像素点。 设备:简单来说,就是绘图表面。...图形绘制函数用于在窗口上绘制各种图形。...以画圆为例 circle()无填充 fillcircle()有边框填充 solidcircle()无边框填充 区别: 从形状来分,常用的可以分为八种。...设置填充颜色setfillcolor(); 设置线条颜色setlinecolor(); 设置线条样式setlinestyle();高,宽,字体 8.文字绘制函数 文字绘制函数用于在窗口上绘制文字...9.图像处理函数 图像处理函数用于在窗口上显示图片 10.鼠标消息函数 鼠标消息函数用于获取鼠标的信息 11.键盘消息函数 键盘消息函数用于获取键盘按键消息。

    44210

    JavaScript--DOM总结

    属性 描述 lineCap 设置或返回线条的结束端点样式 lineJoin 设置或返回两条线相交时,所创建的拐角类型 lineWidth 设置或返回当前的线条宽度 miterLimit 设置或返回最大斜接长度...描述 fill() 填充当前绘图(路径) stroke() 绘制已定义的路径 beginPath() 起始一条路径,或重置当前路径 moveTo() 把路径移动到画布中的指定点,不创建线条 closePath...onmousedown 鼠标按钮被按下。 onmousemove 鼠标被移动。 onmouseout 鼠标从某元素移开。 onmouseover 鼠标移到某元素之上。...onmouseup 鼠标按键被松开。 onreset 重置按钮被点击。 onresize 窗口或框架被重新调整大小。 onselect 文本被选中。 onsubmit 确认按钮被点击。...鼠标 / 键盘属性 属性 描述 altKey 返回当事件被触发时,"ALT" 是否被按下。 button 返回当事件被触发时,哪个鼠标按钮被点击。

    7610

    Qt编写自定义控件8-动画按钮组控件

    二、实现的功能 1:可设置线条的宽度 2:可设置线条的颜色 3:可设置线条的位置 上下左右 4:可设置按钮的正常+悬停+选中背景颜色 5:可设置文字的正常+悬停+选中背景颜色 6:切换位置线条自动跟随.../ly305750665/article/details/80736504 * 1:可设置线条的宽度 * 2:可设置线条的颜色 * 3:可设置线条的位置 上下左右 * 4:可设置按钮的正常+悬停...+选中背景颜色 * 5:可设置文字的正常+悬停+选中背景颜色 * 6:切换位置线条自动跟随 * 7:可设置按钮字符串组合生成按钮组 * 8:可设置线条滑动的速度 */ #include <QWidget...Antialiasing); //设置颜色 painter.setPen(Qt::NoPen); painter.setBrush(lineColor); //根据不同的位置绘制线条区域...每个类都可以独立成一个单独的控件,零耦合,每个控件一个头文件和一个实现文件,不依赖其他文件,方便单个控件以源码形式集成到项目中,较少代码量。

    1.7K30

    excel常用操作大全

    将鼠标放在B1位置。牢房下面不是有一个小方点吗?按下鼠标左键并向下拖动直到结束。当你放开鼠标左键时,一切都变了。...,并希望以工资单的形式输出它。怎么做?...要将格式化操作复制到数据的另一部分,请使用“格式化画笔”按钮。选择具有所需源格式的单元格,单击工具栏上的“格式画笔”按钮,鼠标变成画笔形状,然后单击要格式化的单元格以复制格式。...事实上,我们可以使用绘图工具来实现: 点击“绘图”按钮,选择“直线”,鼠标将变成一个十字。将它移动到您想要添加斜线,的开始位置,按住鼠标左键并将其拖动到结束位置,释放鼠标,将绘制斜线。...要取消,请选择中文文本框,弹出菜单,选择“设置文本框格式”“颜色和线条”,然后选择“线条”-“颜色”-“无线条颜色”。 20、如何快速输入数据序列?

    19.3K10
    领券