首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

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

一、鼠标滚轮缩放的中心点设置为当前鼠标中心点 - 要点分析 ---- 鼠标指针指向界面中的 Canvas 画布某个位置 , Canvas 画布中绘制着一张超大图片 , 以该位置为中心 , 滑动鼠标滚轮时进行缩放...; 使用鼠标滚轮缩放后 , 在 Canvas 中绘制的图片的尺寸肯定是放大或者缩小了 , 尺寸发生了改变 ; 图片缩放时 , 鼠标指针指向一个位置 , 该位置对应着一个当前 Canvas 画布中的 x..., y 坐标 , 同时可以计算出当前位置对应的图片中的 水平方向的比例 和 垂直方向的比例 ; 在缩放后的图片中 , 只要保证鼠标指针指向相同的 x, y 坐标时 , 该位置对应的 水平方向的比例 和...; // 缩放后的图像宽度 double imageHeight = image.getHeight(null) * scale; // 缩放后的图像高度 // 计算整张画布宽度..., 发现此时缩放 , 就是以当前鼠标指针为中心进行的缩放 ;

2.7K10

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

一、键盘按键监听 - 要点分析 ---- 如果要为 Java AWT 界面编程的应用设置键盘按键监听 , 必须为 Frame / JFrame 窗口设置键盘监听 , 为组件设置是无效的 ; 下面是设置键盘监听的核心代码...+ 以当前鼠标指针位置为缩放中心 示例 ---- 在 【Java AWT 图形界面编程】Canvas 中绘制超大图片 ( 使用鼠标拖动查看全图 | 设置 JFrame 窗口自动关闭 | 获取并绘制图片...| 鼠标拖动计算位移 | 画布偏移 ) 博客中 , 绘制了超大图像 , 可以使用鼠标拖动 ; 在 【Java AWT 图形界面编程】使用鼠标滚轮放大缩小 Canvas 画布 ( 鼠标滚轮事件监听器 MouseWheelListener...) 博客中 , 新增鼠标滚轮缩放画布示例 , 但是使用鼠标拖动时 , 拖动的效果也随之缩放, 如 缩小画布后 , 移动鼠标 , 移动距离对应的缩放效果也随之缩小 ; 在 【Java AWT 图形界面编程..., 实现缩放效果 , 并同时福袋鼠标指针拖拽效果 ; 本博客中实现的案例 , 在上面的基础上 , 添加了鼠标滚轮缩放的中心点设置为当前鼠标中心点 ; 1、代码示例 import javax.swing

1.8K20

D3.js库-1-入门篇

DOM:文档对象模型,用于修改文档的内容和结果 SVG:可缩放矢量图形,用于绘制可视化的图形 以上知识点没有必要掌握的非常精通,建议到W3school快速入门,了解基本概念,再看几个案例demo,以后遇到不懂的地方可以进行查看...编程环境 D3.js是在网页上的可视化制图,常用的网页制作工具: IDE的选择:VS code、Sublime Text、Notepad++等,推荐使用VS code 浏览器:D3支持的主流浏览器不包括...HTML 到 CSS,乃至进阶的 XML、SQL、JS、PHP 等 HTML+CSS快速入门 初识HTML(5)+CSS(3)-2020升级版 SVG 可缩放矢量图形,即SVG,是W3C...XML的分支语言之一,用于标记可缩放的矢量图形 SVG-菜鸟课程 SVG|MDN SVG图像入门教程|阮一峰老师 D3.js 第一个推荐的网站肯定是D3官网,包含很多的示例和API文档,都是根据最新的版本发布的...D3.js的V5版本入门教程 慕课网-使用D3制作图表 数据可视化编程-使用D3.js Data Visualization with D3.js - Full Tutorial Course,油管上的一个实例演示课程

19.1K30

开启D3:是什么让程序员与设计师如此钟爱

D3名副其实,能将数据绑定到Web文档,然后基于数据来操纵那些文档。酷吧,但是这又能做什么呢? 我们先从D3是JavaScript编程库这件事说起。...这些函数集为编程提供了一种新的方式。 D3作为一个程序库,正是一组函数或方法及其定义(具体命令的执行序列)的集合。这组函数或方法包含在具体的JavaScript文件中。...如果其他用户访问你的站点,他的浏览器一样会直接运行d3.v3.js,D3的函数同样会被导出。 这些函数非常有用。D3绝对是一个能让程序员完全改变编程方式的JavaScript程序库。...从技术上来讲,能被浏览器访问并被其渲染的东西都可以称为Web文档,这包括任何HTML页面,但更为重要的还有SVG(可缩放矢量图形)及图片。 你以前可能用过SVG。...SVG是一种矢量图形格式:图形的分辨率能够根据缩放级别自我调节,所以从来不会失真。其背后的秘密就是使用了一种类似HTML的标记语言来编码这种Web图形文档。

1.7K20

D3库实践笔记之图表交互 |可视化系列36

与图表的交互,是指图表元素能根据用户的键盘鼠标操作做出相应的反应,例如悬停高亮、缩放、漫游、拖动节点、点击涟漪效果等等。...和“a”被视为一致;•keypress:当用户按下字符键(大小写字母、数字、加号、等号、回车等)时触发,按住不放会重复触发此事件,该事件就会区分字母的大小写;•keyup:当用户松开按键时触发,该事件区分字母的大小写...缩放 通过d3.zoom().on("zoom", zoomed)配置缩放的交互,具体用法如下。...需要说明的是在v3.x版本中是使用d3.behavior.zoom()创建缩放行为,而v5.x及之后的版本是d3.zoom(),不再有behavior这一层抽象; 给矩形和坐标轴添加缩放交互响应: var...drag没有缩放功能。

5.3K00

JavaScript图表的数据可视化:比较D3和Kendo UI

在这种情况下,最大值是775我四舍五入到800因为我们希望我们的图表停留在775因为这看起来很奇怪。X轴是根据数据集中的值的数量进行缩放的。在下一节中,我们将在显示区域略微移动图表。...现在我们开始讲D3部分的内容。在这里,我们告诉D3我们将使用哪些数据,并指定图表中每个条形图的基本元素。我们告诉它每个条的宽度,我们告诉它条的高度(获取数据值并缩放它)。...同样地,我们没有告诉它关于X轴的任何东西——它只是计算数据点的数量并相应地缩放。虽然它没有画出带有标签的X轴,因为我们没有给它,但它至少画出了坐标轴。...同样地,我们没有告诉它关于X轴的任何东西——它只是计算数据点的数量并相应地缩放。...D3需要为每个新特性做一些编程,对于Kendo UI这些只是额外的参数,你可以设置。

11.8K30

d3从入门到出门

选择元素 d3主要有两个选择器 select 选择相应的dom元素, 如果有多个, 选择第一个 selectAll 选择所有的指定的dom元素....而选择器的语法基本就是css选择器的语法. css选择器语法: http://www.w3school.com.cn/c***ef/css_selectors.asp 增删查改 假设网页有以下元素, 关于d3...选择第一input元素,将checked属性设置为true 元素删除 remove 将选定的元素删除 示例: d3.select("p").remove //选择第一个p元删除 链式操作 d3...网络数据加载 d3内置数据加载的方法,可以解析比较常见的数据格式,主要有以下四种,这里主要以csv文件个数数据作为示例 d3.csv d3.json d3.tsv d3.xml csv文件内容如下 //...由于使用的数值与图片中的长宽数值有一定的差异,比如,图片长度为500,但是数值都是在10以内, 我们做出来的图一定是需要尽量的填充整个视图,所以需要对源数据做一定的缩放, 下面介绍两类缩放d3本身有很多的缩放函数

3K20

D3可视化:让您的仪表板更上一层楼

这就是为什么D3以其更为动态格式显示您的数据集成为有价值的工具。 为什么你应该使用D3? 谈到在线分析,D3数据可视化为您提供了几个优于其他既有语言及编程典范的优势。...D3迅速成为顶梁柱的最大原因之一可能听起来违反常识。D3不是图形库或数据处理实用程序。相反,它可被认为是介于两者之间的桥梁。D3的核心是可以轻松使用的低级非庞大框架来解释并操作数据的D3可视化工具。...D3的一大优点是,虽然它没有任何视觉资源,但D3是开源的,其相关社群已经创建了一些令人惊叹的视觉模板。...但使用SVG可根据其可缩放图形及无损调整大小的能力提供相同的动态动画与可定制性。...一种流行的使用策略是采用D3地图可视化并创建可根据位置提供特定见解的交互式图表。使用D3的地图有包括悬停显示信息、缩放至特定区域及通过操作参数更改颜色的特性。

5K10

九大数据可视化利器,你有在使用吗?

D3 当下谈论数据可视化时,我们是绕不开 D3 的,这是由 Mike Bostock 创建的库,它已成为在浏览器中处理 SVG 矢量图形的主要工具。...D3 是如此的受欢迎,以至于有许多其它的库在 D3 的基础上被创造出来,为人们提供更多“开箱即用”的解决方案,如 NVD3。...D3 是一个将信息加载到浏览器并基于数据元素生成报告的框架,它本身不提供特定类型的图像,而是一种数据可视化方法。由于 D3 十分灵活,掌握这个库需要花很多时间,但这一切都是值得的。...它也使用 SVG 元素,这些元素是可以任意缩放的,不存在像素点问题。它具有创建动画和插入各种组件的功能。...它允许您处理密集、紧凑和高容量的数据,并会自动调整缩放比例和时间戳。它还提供互动性(包括移动设备),即在无需额外设置的情况下就可以拖动、缩放图形。Dygraphs 是一个非常快速和高度可定制的库。 ?

3.8K60

探究 css touch-action 属性

使用 Touch_events 的应用程序通过调用 preventDefault() 禁用浏览器处理手势,但也应使用触摸操作确保浏览器在调用任何事件侦听器之前,了解应用程序的意图。...manipulation 浏览器只允许进行滚动和持续缩放操作。任何其它被auto值支持的行为不被支持。启用平移和缩小缩放手势,但禁用其他非标准手势,例如双击以进行缩放。...禁用双击可缩放功能可减少浏览器在用户点击屏幕时延迟生成点击事件的需要。 这是“pan-x pan-y pinch-zoom”(为了兼容性本身仍然有效)的别名。...pinch-zoom 启用多手指平移和缩放页面。 这可以与任何平移值组合。...,但不想干扰网页的垂直滚动或缩放

1.8K10

容易被忽略的5个HTML技巧

各种框架和编程语言可能会此消彼长,但 HTML 永不会过时。只是,就算 HTML 的应用如此广泛,这种语言中还是有不少多数开发人员都不了解的标签和属性。...你可以使用 JavaScript 添加输入建议,方法是在输入字段上设置一个事件侦听器,然后将搜索的术语与预定义建议进行匹配。...更改视口宽度时,你可能会注意到某些图像未按预期缩放。...文档刷新 如果要在页面一段时间活动时,或者第一时间将用户重定向到另一个页面,只需使用纯 HTML 即可轻松实现。...因此应该只在某些情况下才使用它,例如在长时间活动后重定向页面。 最后的想法 HTML 和 CSS 非常强大,你可以只使用两者就构建出色的网站。

1.2K10

50种制作图表JS库

如果你想要做出优秀的自定义数据可视化效果,那么D3可能是你最佳选择,或者对于更简单的图,你可以选择上面所提到的基于D3的库。...最后,我强烈推荐阅读Scott Murray关于D3的免费书《Interactive Data Visualization for the Web》和《Dashing D3 tutorials》。...dygraphs——一种开源的JavaScript库,可以做出可交互、可缩放的时间线图表。对于大数据集合非常适用。 Protovis——和D3出自同一支团队之手,是一种免费的开源库。...你可以查看这个stackoveflow 页面来了解D3与其的区别。...它拥有很多特性,像对负数值的支持、鼠标跟踪、选定支持、缩放支持、事件挂钩、CSS样式支持、在画布(canvas)中包含文字、旋转的标签、渐变颜色、图形标题和子标题、电子表格、CSV数据下载等等。

4.4K20

D3.js 力导向图的显示优化(二)- 自定义功能

首先,我们用 d3-force 力导向图来构建一个简单的关联网 this.force = d3 .forceSimulation() // 为节点分配坐标...没错,还是上篇提及的 D3.js 的 enter() 及没提到的 exit() 摘自文档的描述: 数据绑定的时候可能出现 DOM 元素与数据元素个数匹配的问题, enter 和 exit 就是用来处理这个问题的...采用滚轮控制缩放的方案的话,不了解 Nebula Graph Studio 的用户很难发现这种隐藏操作,而且滚动控制缩放无法控制缩放的明确比例,举个例子,用户想缩放 30% / 50%,对于这种限定的比例...除此之外,笔者在实施滚轮缩放的过程中发现滚动缩放会影响节点和边的位置偏移,这又是什么原因造成的呢?...说到可视化展示一个复杂的关系网,需要考虑的问题还很多,需要优化的交互和显示的地方也很多,我们会持续优化,后续我们会更新 D3.js 优化系列文,欢迎订阅 Nebula Graph 博客。

4.2K50

五个创建交互式图表的Python库

自定义插件示例 Mpld3 将Phython的核心绘图库matplotlib和备受欢迎的JavaScript图表库D3结合在一起,创建了与浏览器兼容的可视化图形。...你可以在matplotlib中绘制一张图表,运用Phython和JavaScript插件增加交互功能,然后用D3渲染。...Mpld3包含缩放、平移和增加提示工具条(当鼠标悬浮于某一数据点上,出现提示信息)等内置插件。然而,Mpld3的真正亮点在于它齐全的API,允许让你创造自定义插件。...与mpld3一样,你可以在其中缩放和平移操作图表,但是也可以关注通过框或套索选中的一组数据点上。 ◆ ◆ ◆Holo Views ?...当使用Boken后端时,你可以结合滑块和Bokeh的工具探索图形,例如对它进行缩放和平移。

4.4K60

《使用D3设计交互式图表》简读笔记|可视化系列31

本文是《数据可视化实战:使用D3设计交互式图表》[1]的简要版读书笔记,通过约4000字概览如何用D3做可视化、实践从数据到图形的过程。...本书思维导图简要版 D3技术基础 D3操作的是Web上的文档,可以便捷快速地向全世界发布可视化作品,对操作系统和设备的依赖很低。...像面粉可以做出各种糕点而不是直接提供面条;•擅长矢量图形,缩放损失图形精度,不擅长位图和瓦片,不擅长探索型可视化;•作为HTML文档,隐藏原始数据,如果不想共享数据,为什么还要将它们可视化呢?...用D3做可视化的代码框架如下: <!...和一些编程语言的坐标系统一样,基于像素的坐标系统的原点位于画布的左上角。增大 x 的值,图形会向右移动;增大 y 值,图形会向下移动。 ?

3.7K20

jimojianghu

禁止缩放 有天,辛苦做了个复杂操作功能的页面,上线后有用户反馈:很多功能使用不了。惊了,以为是哪里出了bug。...触控板 要禁止触控板的缩放行为,需要处理鼠标滚轮事件:wheel 。 因为笔记本触摸板双指滑动,将响应该事件,如果对该事件阻止默认行为,就能解决缩放问题了。...浏览器只允许进行滚动和持续缩放操作,任何其它被auto值支持的行为不被支持。 启用平移和缩小缩放手势,但禁用其他非标准手势,例如双击以进行缩放。...禁用双击可缩放功能可减少浏览器在用户点击屏幕时延迟生成点击事件的需要。 触摸动作也经常用于完全解决由支持双击缩放手势引起的点击事件的延迟。 pinch-zoom 启用多手指平移和缩放页面。...由于目标被视为被动,因此无法在被动事件侦听器中阻止默认行为。 可能的发生情景:移动端使用touch事件后,垂直平移时的报错。

3.8K00

CUDA优化的冷知识16|纹理存储优势(2)

也就是说, 我一个256x256的图片, 和一个512x512的图片, 使用了自动的免费坐标归一化功能后, 后者和前者可以自动的等效缩放. 这点节省了用户单独的写一个kernel进行缩放的过程....不需要手写任何代码, 自然也不需要考虑这点. AI么, 会用记事本就能搞AI. 有数的. 但回到正题, 本章节说的坐标自动映射(或者等效的图像自动缩放功能), 的确节省了用户的开发成本....此外, 和值变换不同的是, 这种坐标映射是右边界包含的, 即一个图像(或者2D数组), 会被映射到[0.0, 1.0)的坐标范围, 手册这里的说法是, 映射到[0.0, 1.0 - 1/N], 注意)...这样texture就又带来了, 免费的而且一定情况下是精确的坐标变换/缩放功能. 使用它依然可以解放掉你的主代码去干其他事情. 从而可能带来无论是编程世间, 还是性能上的提升. 这是第二点....不考虑边界情况往往会代码你的代码行为异常, 或者出现无法预测的结果.

46120
领券