内容概要: 1、数据可视化大屏自适应,满足不同分辨率需求。 2、利用transform的scale属性缩放,缩放整个页面。。 3、在任意屏幕下保持16:9的比例,保持显示效果一致。 4、更宽:(Width / Height) > 16/9,以高度为基准,去适配宽度。 5、更高:(Width / Height) < 16/9,以宽度为基准,去适配高度。 6、1920*1080的分辨率大屏页面(16:9)比例效果演示。 7、1024*768的分辨率大屏页面(4:3)比例效果演示。 8、8400*3150的分辨率大屏页面(不规则)比例效果演示。 适合人群: 1、具备一定前端基础,熟悉CSS的开发者。 能学到什么: 1、做大屏项目时,需要适配不同屏幕,且在任意屏幕下保持16:9的比例,保持显示效果一致,屏幕比例不一致两边留白即可。 2、利用transform的scale属性缩放,缩放整个页面。
2024-09-06 11:23:49 99KB 可视化大屏 transform scale 保持比例
1
在VB6(Visual Basic 6)环境中,开发人员经常需要处理图像显示的需求,例如在应用程序中展示图片或者进行图像操作。本教程将详细介绍如何利用VB6实现一个显示图像的ActiveX控件,支持PNG格式,并且具备鼠标滚轮缩放、镜像、旋转以及鼠标移动图像的功能。 我们需要创建一个新的ActiveX控件项目。在VB6中选择"文件" -> "新建" -> "工程",然后在"ActiveX控件"类别中选择"ActiveX DLL"。这将创建一个新的ActiveX控件工程。 接下来,我们在控件设计界面添加一个 Picture 控件,它是VB6内置的用于显示图片的控件。右键点击工具箱,选择"部件",在弹出的对话框中找到"Microsoft Windows Common Controls",勾选 Picture 控件并确定,这样Picture控件就会出现在工具箱中。将Picture控件拖放到设计面板上,作为显示图像的主要组件。 为了支持PNG格式,我们需要引入GDI+库,因为VB6默认不支持PNG。可以通过引入外部库或者使用第三方库如GDIPlusLib来实现。安装GDIPlusLib后,可以在控件的代码窗口中引用它: ```vb Private Declare Sub GdiplusStartup Lib "gdiplus.dll" (ByRef token As Long, ByRef init As GdiplusStartupInput, ByVal reserved As Long) Private Declare Sub GdiplusShutdown Lib "gdiplus.dll" (ByRef token As Long) Type GdiplusStartupInput DebugLevel As Long LicenseKey() As Byte End Type ``` 接着,我们需要编写代码来加载PNG图片。在控件的初始化事件中,可以使用以下代码: ```vb Dim bitmap As GDIPlusLib.Bitmap Set bitmap = New GDIPlusLib.Bitmap bitmap.LoadFromFile Me.Picture1.Picture.filename ' 加载图片 Me.Picture1.Picture = bitmap.ToOlePicture ' 将GDI+ Bitmap转换为VB6的Picture GdiplusShutdown token ' 关闭GDI+ Set bitmap = Nothing ``` 为了实现鼠标滚轮缩放功能,我们需要处理控件的MouseWheel事件。下面的代码展示了如何根据滚轮的上下滚动来改变图片的大小: ```vb Private Sub Picture1_MouseWheel(ByVal ScrollCode As Integer, ByVal KeyState As Integer, ByVal MousePos As MSForms.Point) Dim scaleFactor As Double If ScrollCode > 0 Then ' 上滚 scaleFactor = 1.1 ' 放大比例 Else ' 下滚 scaleFactor = 1 / 1.1 ' 缩小比例 End If Me.Picture1.ScaleMode = vbScalePixels ' 设置缩放模式 Me.Picture1.ScaleWidth = Me.Picture1.ScaleWidth * scaleFactor Me.Picture1.ScaleHeight = Me.Picture1.ScaleHeight * scaleFactor End Sub ``` 对于镜像和旋转操作,我们可以创建两个自定义方法,例如 `MirrorImage` 和 `RotateImage`,通过改变控件的ScaleX和ScaleY属性实现: ```vb Sub MirrorImage() Me.Picture1.ScaleX = -Me.Picture1.ScaleX End Sub Sub RotateImage(angle As Integer) Me.Picture1.ScaleMode = vbScalePixels Me.Picture1.ScaleWidth = Me.Picture1.ScaleWidth * Cos(angle * PI / 180) Me.Picture1.ScaleHeight = Me.Picture1.ScaleHeight * Sin(angle * PI / 180) End Sub ``` 处理鼠标移动图像的功能,需要在MouseMove事件中计算鼠标相对于控件左上角的位置,然后调整控件的Left和Top属性: ```vb Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = vbLeftButton Then Me.Left = Me.Left + (X - Me.Picture1.Width / 2) ' 计算移动距离 Me.Top = Me.Top + (Y - Me.Picture1.Height / 2) End If End Sub ``` 现在,我们已经创建了一个具备各种图像操作功能的ActiveX控件。用户可以通过在其他VB6工程中引用这个控件,轻松地在他们的应用程序中实现显示和操作PNG图片的能力。记住,为了使用这个控件,需要在目标工程中注册ActiveX DLL文件,并在需要使用的地方添加控件实例。
2024-08-11 09:11:35 642KB VB控件 显示图片 图片缩放
1
在UE4(Unreal Engine 4)和UE5(Unreal Engine 5)这两个流行的实时3D创作工具中,触摸屏交互是为用户提供直观控制的重要功能。尤其在移动设备和现代多触点设备上,理解如何处理触摸屏上的移动、旋转和缩放事件对于创建优秀的触控体验至关重要。本文将深入探讨UE4和UE5中的触摸屏事件处理机制,以及如何利用这些事件来实现上述操作。 UE4和UE5都提供了内置的输入系统来处理各种类型的用户输入,包括鼠标、键盘、游戏手柄和触摸屏。触摸屏事件通过`FInputEvent`类表示,该类是所有输入事件的基础类。对于触摸事件,主要有以下几种类型: 1. **触摸开始**:当用户首次接触屏幕时,会触发`FTouchEvent`,其中`TouchEventType`为`ETouchType::TouchDown`。 2. **触摸移动**:用户在屏幕上滑动手指时,会产生一系列的`FTouchEvent`,其`TouchEventType`为`ETouchType::TouchMove`。 3. **触摸结束**:当用户抬起手指离开屏幕时,事件类型为`ETouchType::TouchUp`。 在UE4中,可以通过`UUserWidget`类来处理触摸事件。你可以重写`BeginTouchMove`, `BeginTouchDown`, 和`EndTouchUp`等函数来响应相应的触摸事件。同时,可以使用`AddTouchHandler`方法注册特定的触摸事件处理函数。 在UE5中,虽然基本的触摸事件处理方式没有本质改变,但引擎引入了更强大的C++和蓝图API,使得处理触摸事件更加便捷。例如,可以使用新的`TouchEvent`节点在蓝图中处理触摸事件。此外,UE5的`WorldContextObject`提供了一种更统一的方式来处理不同设备的输入,包括触摸屏。 移动、旋转和缩放操作通常涉及多个触摸点。例如,在多点触摸场景下,两个手指的触摸开始和移动事件可以用来实现缩放,而一个手指的移动可以用于平移。以下是如何实现这些功能的一般步骤: - **移动**:计算两个触摸点之间的中心点,然后根据新位置与原始中心点的差值来移动对象。 - **旋转**:计算两个触摸点形成的角度变化,并应用这个角度到对象的旋转。 - **缩放**:测量两个触摸点之间的新距离与原始距离,然后根据比例因子调整对象的大小。 在UE4和UE5的蓝图中,可以通过创建`TouchInputComponent`来处理多点触摸。使用`TouchInputComponent`的`AddTouch`和`RemoveTouch`节点来管理触摸事件,并使用`GetPinchZoomDelta`或`GetTwoFingerPanDelta`等节点获取缩放和平移信息。 为了优化触摸输入,还可以考虑触摸输入的防抖动处理,避免因为快速连续的触摸事件导致的不必要动作。此外,触摸事件的响应速度和流畅性也非常重要,可能需要适当调整引擎的输入刷新率和处理逻辑。 UE4和UE5为开发者提供了丰富的工具和API,以支持在触摸屏设备上实现移动、旋转和缩放等交互操作。通过理解和熟练运用这些功能,可以创建出更加直观和自然的用户体验。在实际项目中,应根据具体需求进行定制化开发,确保触控功能既高效又易于使用。
2024-07-09 17:01:57 610.21MB 触摸屏事件
前面通过Picturebox控制图片缩放平移,操作很顺滑,但是放大的时候发现一个问题,放大超过一定尺寸之后画面会非常的卡,可能重绘的面积比较大。 解决思路:放大的过程中,如果图像有超出窗口的部分,则把这部分图像给拆切掉,只显示需要的部分。
2024-07-03 09:05:40 22KB 自定义窗体控件 winform
内插双正交整数小波变换(IWT)支持高效的图像无损压缩并且具有较低计算复杂度,但是为了保证整数输出,变换中包含了浮点数缩放因子并额外增加了三个提升步骤,降低了整数小波变换对图像的有损压缩效率。提出了一种基于优化因子的静止图像编码算法。在小波变换过程中,新算法利用一组基于2的整数次幂的分数代替浮点数缩放因子,消除变换中的浮点数乘法操作,降低变换的计算复杂度。实验结果表明,采用优化因子的图像压缩算法不仅有效降低了编码中小波变换的计算复杂度,而且获得了与采用浮点数缩放因子的内插双正交整数小波变换相近的峰值信噪比。
1
开发环境:vs2022 halcon 23.0.5 海康提供的类;MVCamera.cs 实例化海康提供的类,获取图像,然后在halcon 中实现模板匹配。 自己做一个test.shm模板存储在debug文档中,就可以实现模板匹配。 【核心代码】 1.定义相机对象,可以实现图像缩放平移,有些smartwindow 不稳定,可以换成Hwindcontrol控件显示 public Form1() { InitializeComponent(); hwindow = hSmartWindowControl1.HalconWindow;//初始化窗口变量s w_width = hSmartWindowControl1.Size.Width; w_height = hSmartWindowControl1.Size.Height; this.MouseWheel = new System.W
2024-06-27 16:29:55 28.4MB halcon 模板匹配 机器视觉
1
通过本次实验,将老师在课堂上讲解的多边形集合变换算法进行具体代码的实现,对于多边形的几何变换从实现最基本的几何变换开始写起,一开始的图形也不要太过复杂,后面我在扩展功能的时候,才逐渐如鱼得水,说明理论应用到实践还是有点差距的,编程要由浅入深,功能要逐步扩展,切忌浮躁;第二个是矩阵的计算问题,发现没有矩阵的相乘函数,这就需要自己去编写,一开始用数组存放的矩阵,发现这样对于矩阵的计算太不方便,而且对于后面用户增加顶点操作也不好实现,转换思路,采用vector动态存放数组,这样初始化单位矩阵和实现矩阵的计算就没有太复杂了。
2024-05-28 15:32:32 9KB
1
QOpenGLWidget显示QImage图片, 实现显示、缩放(放大、缩小), 旋转、平移等功能
2024-04-09 10:39:29 347KB opengl QOpenGLWidget QImage
1
我们检查全息模型中的传输,其中带电自由度的动力学由非线性Dirac-Born-Infeld(DBI)作用描述。 包括轴离子标量场以打破平移不变性并在系统中产生动量耗散。 通过使用几何形状引入缩放指数,该几何形状在红外中是非相对论的并且违反了超缩放。 在探针DBI极限中,该理论再现了铜价奇特金属ρ〜T和cotθH〜T2的电阻率和霍尔角的反常温度依赖性。 没有由DBI交互编码的非线性动力学,这些缩放定律就不会出现。 我们进一步表明,由于其丰富性,DBI理论支持广泛的温度标度。 该模型提供了显式示例,其中通过不同的弛豫时间控制运输。 另一方面,当只有一个参数设置系统的温度标度时,霍尔角和电导率通常表现出相同的温度行为。 我们使用新的完全后反应的分析性强子黑糠溶液来说明这一点。
2024-03-24 19:38:58 159KB Open Access
1
C#代码编的绘图,实现画线、移动线、放大、缩小等功能; 本程序没有通过本人的同意,不得用于商业
2024-03-02 15:04:35 179KB C#绘图 C#缩放 C#绘图缩放
1