CN115220629B - 一种界面元素位置调整方法 - Google Patents

一种界面元素位置调整方法 Download PDF

Info

Publication number
CN115220629B
CN115220629B CN202210720128.XA CN202210720128A CN115220629B CN 115220629 B CN115220629 B CN 115220629B CN 202210720128 A CN202210720128 A CN 202210720128A CN 115220629 B CN115220629 B CN 115220629B
Authority
CN
China
Prior art keywords
dragging
message
drag
dragged
coordinates
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202210720128.XA
Other languages
English (en)
Other versions
CN115220629A (zh
Inventor
陆胜杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huizhou Foryou General Electronics Co Ltd
Original Assignee
Huizhou Foryou General Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huizhou Foryou General Electronics Co Ltd filed Critical Huizhou Foryou General Electronics Co Ltd
Priority to CN202210720128.XA priority Critical patent/CN115220629B/zh
Publication of CN115220629A publication Critical patent/CN115220629A/zh
Application granted granted Critical
Publication of CN115220629B publication Critical patent/CN115220629B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0486Drag-and-drop
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04817Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本发明涉及人机交互技术领域,提供一种界面元素位置调整方法,根据图标拖动的过程设置了对应于拖动开始、拖动中、拖动结束的第一消息处理函数、第一消息处理函数、第一消息处理函数,通过实时检测计算触摸点的屏幕坐标(包括第一屏幕坐标、第二屏幕坐标),进一步确定被拖动元素的拖动轨迹,从而进行实时显示,同时操作过程更加简便,移动效率高,进而实现图标的高效拖动,并提高用户体验和产品竞争力。

Description

一种界面元素位置调整方法
技术领域
本发明涉及人机交互技术领域,尤其涉及一种界面元素位置调整方法。
背景技术
随着电子技术的发展,车载信息系统已经由原来的物理按钮操作逐渐被触摸屏取代,有些甚至完全取消了物理按钮,而采用触摸屏控制的方式。
现有的智能移动终端大多为全触屏,通过图标的方式在触摸屏上向用户展示终端已安装的各类应用。用户通过这些图标,可以对终端应用进行管理以及使用通过触摸屏中显示的图标,用户可以快捷地使用终端已安装的应用。
随着智能操作系统在车载信息系统上的应用,人们可以对布置在显示界面上的图标进行拖动,放到自己想要的位置上。现有的图标拖动显示操作过程复杂,移动效率较低。
发明内容
本发明提供一种界面元素位置调整方法,解决了现有的图标拖动显示操作过程复杂、移动效率较低的技术问题。
为解决以上技术问题,本发明提供一种界面元素位置调整方法,包括步骤:
S1、定义拖动控件指针p_Item、触摸点相对于被拖动元素的偏移量的全局变量;
S2、在当前被拖动元素对应的目标节点中添加、配置拖放操纵器;
S3、根据所述拖放操纵器生成的拖动开始消息,调用第一消息处理函数执行拖动开始进程;
S4、根据所述拖放操纵器生成的拖动中消息,调用第二消息处理函数实时更新被拖动元素的显示位置;
S5、根据所述拖放操纵器生成的拖动结束消息,调用第三消息处理函数显示拖动后的所述被拖动元素。
在进一步的实施方案中,所述步骤S2包括步骤:
S21、接收用户对界面元素的触屏操作事件,确定当前被拖动元素;
S22、创建生成拖放消息的拖放操纵器;
S23、添加拖放操纵器到当前被拖动元素对应的目标节点;
S24、设置确定拖动开始的持续时间;
S25、订阅所述目标节点的拖动开始消息、拖动中消息、拖动结束消息。
在进一步的实施方案中,所述步骤S3包括步骤:
S31、获取所述拖放操纵器生成的拖动开始消息,调用第一消息处理函数;
S32、根据所述拖动开始消息的参数获取所述被拖动元素的外观,将所述外观赋值给所述拖动控件指针p_Item;
S33、根据所述拖动开始消息,获取所述触屏操作事件中的触摸点相对于所述被拖动元素的第一相对坐标和第一变换矩阵;
S34、根据所述第一相对坐标、第一变换矩阵计算所述触摸点的第一屏幕坐标,并根据所述第一相对坐标赋值所述偏移量;
S35、根据所述第一屏幕坐标赋值所述拖动控件指针p_Item,并隐藏所述被拖动元素。
在进一步的实施方案中,所述步骤S4包括步骤:
S41、获取所述拖放操纵器生成的拖动中消息,调用第二消息处理函数;
S42、计算所述被拖动元素的局部拖动锚点;
S43、根据所述局部拖动锚点计算对应的全局拖动锚点;
S44、设置渲染变换中的平移属性字段为所述全局拖动锚点;
S45、根据所述拖动控件指针p_Item的当前坐标和所述偏移量,计算所述拖动控件指针的拖动距离量。
在进一步的实施方案中,在所述步骤S45中:
拖动距离量=拖动控件指针p_Item的当前坐标-偏移量。
在进一步的实施方案中,所述步骤S5包括:
S51、根据所述拖放操纵器生成的拖动结束消息,调用第三消息处理函数计算触摸点的第二屏幕坐标;
S52、根据所述第二屏幕坐标显示拖动后的所述被拖动元素。
在进一步的实施方案中,所述步骤S51包括步骤:
A1、根据所述拖放操纵器生成的拖动结束消息,调用第三消息处理函数;
A2、根据所述拖动结束消息获取所述目标节点的当前参数,所述当前参数包括第二相对坐标和第二变换矩阵;
A3、根据所述第二相对坐标和所述第二变换矩阵,计算所述触摸点的第二屏幕坐标。
在进一步的实施方案中,当父节点为整个屏幕大小时,所述第二屏幕坐标为所述第二相对坐标左乘所述第二变换矩阵的值。
在进一步的实施方案中,所述步骤S52包括步骤:
B1、判断所述第二屏幕坐标对应的区域是否存在其它元素,若是进入步骤B2,若否进入步骤B3;
B2、根据所述第二屏幕坐标与所述被拖动元素的初始坐标,交换所述其它元素与所述被拖动元素;
B3、将所述被拖动元素移动到所述第二屏幕坐标,删除所述初始坐标上的图标;
B4、隐藏所述拖动控件指针p_Item,显示所述被拖动元素,更新图标、刷新界面。
本发明根据图标拖动的过程设置了对应于拖动开始、拖动中、拖动结束的第一消息处理函数、第一消息处理函数、第一消息处理函数,通过实时检测计算触摸点的屏幕坐标(包括第一屏幕坐标、第二屏幕坐标),进一步确定被拖动元素的拖动轨迹,从而进行实时显示,同时操作过程更加简便,移动效率高,进而实现图标的高效拖动,并提高用户体验和产品竞争力。
附图说明
图1是本发明实施例提供的一种界面元素位置调整方法的工作流程图;
图2是本发明实施例提供的按钮节点结构的参数设置。
具体实施方式
下面结合附图具体阐明本发明的实施方式,实施例的给出仅仅是为了说明目的,并不能理解为对本发明的限定,包括附图仅供参考和说明使用,不构成对本发明专利保护范围的限制,因为在不脱离本发明精神和范围基础上,可以对本发明进行许多改变。
本发明实施例提供的一种界面元素位置调整方法,如图1~图2所示,在本实施例中,包括步骤S1~S5:
S1、定义拖动控件指针p_Item、触摸点相对于被拖动元素的偏移量的全局变量。
在本实施例中,拖动控件指针p_Item用于确定界面元素中被选中的元素(即被拖动元素)。界面元素包括按钮、APP图标。
以上偏移量具体为,触摸点相对于被拖动元素左上角的偏移量的全局变量m_dragGrabOffset。
S2、在当前被拖动元素对应的目标节点中添加、配置拖放操纵器,包括步骤S21~S25:
S21、接收用户对界面元素的触屏操作事件,确定当前被拖动元素;
S22、创建生成拖放消息的拖放操纵器;
其中,拖放操纵器用于接收拖放的动作(即触屏操作事件),并发送拖动图标过程中三个阶段(拖动开始、拖动中、拖动结束)的相关拖放消息。
S23、添加拖放操纵器到当前被拖动元素对应的目标节点;
S24、设置确定拖动开始的持续时间;
其中,具体的持续时间可根据实际情况进行选择。
S25、订阅目标节点的拖动开始消息、拖动中消息、拖动结束消息。
具体过程如下:当拖放操纵器检测到用户按下被拖动元素并保持设定的持续时间(例如500ms)后,生成拖动开始消息;当拖放操纵器检测到拖动控件指针p_Item在移动时,生成拖动中消息;当拖放操纵器检测到用户松开拖动控件指针p_Item结束拖放手势时,生成拖动结束消息。
S3、根据拖放操纵器生成的拖动开始消息,调用第一消息处理函数执行拖动开始进程,包括步骤S31~S35:
S31、获取拖放操纵器生成的拖动开始消息,调用第一消息处理函数;
S32、根据拖动开始消息的参数获取被拖动元素的外观,将外观赋值给拖动控件指针p_Item;
S33、根据拖动开始消息,获取触屏操作事件中的触摸点相对于被拖动元素的第一相对坐标和第一变换矩阵;
其中,第一变换矩阵T包含缩放、旋转、平移的操作参数。
S34、根据第一相对坐标、第一变换矩阵计算触摸点的第一屏幕坐标,并根据第一相对坐标赋值偏移量m_dragGrabOffset;
在本实施例中,第一相对坐标左乘第一变换矩阵得到第一屏幕坐标。
S35、根据第一屏幕坐标赋值拖动控件指针p_Item,并隐藏被拖动元素。
S4、根据拖放操纵器生成的拖动中消息,调用第二消息处理函数实时更新被拖动元素的显示位置,包括步骤S41~S45:
S41、获取拖放操纵器生成的拖动中消息,调用第二消息处理函数;
S42、计算被拖动元素的局部拖动锚点;
在本实施例中,根据拖动控件指针p_Item的坐标,计算被拖动元素的局部拖动锚点。其中,局部拖动锚点优选为用户正在被拖动元素的左上角。
S43、根据局部拖动锚点计算对应的全局拖动锚点;
S44、设置渲染变换中的平移属性字段为全局拖动锚点;
S45、根据拖动控件指针p_Item的当前坐标和偏移量m_dragGrabOffset,计算拖动控件指针的拖动距离量。
在本实施例中,拖动距离量=拖动控件指针p_Item的当前坐标-偏移量m_dragGrabOffset。
S5、根据拖放操纵器生成的拖动结束消息,调用第三消息处理函数显示拖动后的被拖动元素,包括步骤S51~S52:
S51、根据拖放操纵器生成的拖动结束消息,调用第三消息处理函数计算触摸点的第二屏幕坐标,包括步骤A1~A3:
A1、根据拖放操纵器生成的拖动结束消息,调用第三消息处理函数;
A2、根据拖动结束消息获取目标节点的当前参数,当前参数包括第二相对坐标和第二变换矩阵;
A3、根据第二相对坐标和第二变换矩阵,计算触摸点的第二屏幕坐标。
在本实施例中,当父节点为整个屏幕大小时,第二屏幕坐标为第二相对坐标左乘第二变换矩阵的值。如下图所示,以按钮节点为例,按钮节点结构如下:Button00~02为元素,它们的父节点为Editable,Editable的大小设置为铺满整个屏幕,即父节点Editable的原点位于屏幕的左上角。即此时,触摸点相对于被拖动元素目标节点的父节点的坐标即为该触摸点的屏幕坐标。
S52、根据第二屏幕坐标显示拖动后的被拖动元素,包括步骤B1~B4:
B1、判断第二屏幕坐标对应的区域是否存在其它元素,若是进入步骤B2,若否进入步骤B3;
B2、根据第二屏幕坐标与被拖动元素的初始坐标,交换其它元素与被拖动元素;
B3、将被拖动元素移动到第二屏幕坐标,删除初始坐标上的图标;
B4、隐藏拖动控件指针p_Item,显示被拖动元素,更新图标、刷新界面。
本发明实施例根据图标拖动的过程设置了对应于拖动开始、拖动中、拖动结束的第一消息处理函数、第一消息处理函数、第一消息处理函数,通过实时检测计算触摸点的屏幕坐标(包括第一屏幕坐标、第二屏幕坐标),进一步确定被拖动元素的拖动轨迹,从而进行实时显示,同时操作过程更加简便,移动效率高,进而实现图标的高效拖动,并提高用户体验和产品竞争力。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

Claims (5)

1.一种界面元素位置调整方法,其特征在于,包括步骤:
S1、定义拖动控件指针p_Item、触摸点相对于被拖动元素的偏移量的全局变量;
S2、在当前被拖动元素对应的目标节点中添加、配置拖放操纵器;
S3、根据所述拖放操纵器生成的拖动开始消息,调用第一消息处理函数执行拖动开始进程;
S4、根据所述拖放操纵器生成的拖动中消息,调用第二消息处理函数实时更新被拖动元素的显示位置;
S5、根据所述拖放操纵器生成的拖动结束消息,调用第三消息处理函数显示拖动后的所述被拖动元素;
所述步骤S4包括步骤:
S41、获取所述拖放操纵器生成的拖动中消息,调用第二消息处理函数;
S42、计算所述被拖动元素的局部拖动锚点;
S43、根据所述局部拖动锚点计算对应的全局拖动锚点;
S44、设置渲染变换中的平移属性字段为所述全局拖动锚点;
S45、根据所述拖动控件指针p_Item的当前坐标和所述偏移量,计算所述拖动控件指针的拖动距离量:
所述步骤S3包括步骤:
S31、获取所述拖放操纵器生成的拖动开始消息,调用第一消息处理函数;
S32、根据所述拖动开始消息的参数获取所述被拖动元素的外观,将所述外观赋值给所述拖动控件指针p_Item;
S33、根据所述拖动开始消息,获取触屏操作事件中的触摸点相对于所述被拖动元素的第一相对坐标和第一变换矩阵;
S34、根据所述第一相对坐标、第一变换矩阵计算所述触摸点的第一屏幕坐标,并根据所述第一相对坐标赋值所述偏移量;
S35、根据所述第一屏幕坐标赋值所述拖动控件指针p_Item,并隐藏所述被拖动元素;
所述步骤S5包括:
S51、根据所述拖放操纵器生成的拖动结束消息,调用第三消息处理函数计算触摸点的第二屏幕坐标;
S52、根据所述第二屏幕坐标显示拖动后的所述被拖动元素;
所述步骤S51包括步骤:
A1、根据所述拖放操纵器生成的拖动结束消息,调用第三消息处理函数;
A2、根据所述拖动结束消息获取所述目标节点的当前参数,所述当前参数包括第二相对坐标和第二变换矩阵;
A3、根据所述第二相对坐标和所述第二变换矩阵,计算所述触摸点的第二屏幕坐标。
2.如权利要求1所述的一种界面元素位置调整方法,其特征在于,所述步骤S2包括步骤:
S21、接收用户对界面元素的触屏操作事件,确定当前被拖动元素;
S22、创建生成拖放消息的拖放操纵器;
S23、添加拖放操纵器到当前被拖动元素对应的目标节点;
S24、设置确定拖动开始的持续时间;
S25、订阅所述目标节点的拖动开始消息、拖动中消息、拖动结束消息。
3.如权利要求2所述的一种界面元素位置调整方法,其特征在于,在所述步骤S45中:
拖动距离量=拖动控件指针p_Item的当前坐标-偏移量。
4.如权利要求3所述的一种界面元素位置调整方法,其特征在于:当父节点为整个屏幕大小时,所述第二屏幕坐标为所述第二相对坐标左乘所述第二变换矩阵的值。
5.如权利要求3所述的一种界面元素位置调整方法,其特征在于,所述步骤S52包括步骤:
B1、判断所述第二屏幕坐标对应的区域是否存在其它元素,若是进入步骤B2,若否进入步骤B3;
B2、根据所述第二屏幕坐标与所述被拖动元素的初始坐标,交换所述其它元素与所述被拖动元素;
B3、将所述被拖动元素移动到所述第二屏幕坐标,删除所述初始坐标上的图标;
B4、隐藏所述拖动控件指针p_Item,显示所述被拖动元素,更新图标、刷新界面。
CN202210720128.XA 2022-06-23 2022-06-23 一种界面元素位置调整方法 Active CN115220629B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210720128.XA CN115220629B (zh) 2022-06-23 2022-06-23 一种界面元素位置调整方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210720128.XA CN115220629B (zh) 2022-06-23 2022-06-23 一种界面元素位置调整方法

Publications (2)

Publication Number Publication Date
CN115220629A CN115220629A (zh) 2022-10-21
CN115220629B true CN115220629B (zh) 2024-04-05

Family

ID=83610383

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210720128.XA Active CN115220629B (zh) 2022-06-23 2022-06-23 一种界面元素位置调整方法

Country Status (1)

Country Link
CN (1) CN115220629B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105474160A (zh) * 2013-06-14 2016-04-06 微软技术许可有限责任公司 高性能触摸拖放
CN109885314A (zh) * 2019-02-28 2019-06-14 天津字节跳动科技有限公司 小程序自动布局方法和装置
CN110651243A (zh) * 2017-05-16 2020-01-03 苹果公司 用于触摸屏设备的拖放
CN110837332A (zh) * 2019-11-13 2020-02-25 北京字节跳动网络技术有限公司 面部图像变形方法、装置、电子设备和计算机可读介质
CN110888575A (zh) * 2018-09-07 2020-03-17 珠海横琴盛达兆业科技投资有限公司 一种基于web实现截图并保存的方法
CN114115681A (zh) * 2021-12-02 2022-03-01 北京百度网讯科技有限公司 页面生成方法及装置、电子设备和介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104063153B (zh) * 2014-05-04 2018-12-11 南京中兴软件有限责任公司 一种实现人机交互的方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105474160A (zh) * 2013-06-14 2016-04-06 微软技术许可有限责任公司 高性能触摸拖放
CN110651243A (zh) * 2017-05-16 2020-01-03 苹果公司 用于触摸屏设备的拖放
CN110888575A (zh) * 2018-09-07 2020-03-17 珠海横琴盛达兆业科技投资有限公司 一种基于web实现截图并保存的方法
CN109885314A (zh) * 2019-02-28 2019-06-14 天津字节跳动科技有限公司 小程序自动布局方法和装置
CN110837332A (zh) * 2019-11-13 2020-02-25 北京字节跳动网络技术有限公司 面部图像变形方法、装置、电子设备和计算机可读介质
CN114115681A (zh) * 2021-12-02 2022-03-01 北京百度网讯科技有限公司 页面生成方法及装置、电子设备和介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
UE4中背包系统中的简单拖拽功能(C++版本);Tracy-花道杰;《知乎》;全文 *

Also Published As

Publication number Publication date
CN115220629A (zh) 2022-10-21

Similar Documents

Publication Publication Date Title
JP5721662B2 (ja) 入力受付方法、入力受付プログラム、及び入力装置
CN107422934B (zh) 一种图标的设置方法及电子设备
EP2509390B1 (en) Method and mobile terminal for processing contacts
US9448699B2 (en) Techniques for use with a calendar and messaging component
WO2021188551A1 (en) Systems, methods, and graphical user interfaces for displaying and manipulating virtual objects in augmented reality environments
CN105940365B (zh) 一种通知信息处理方法、装置和终端
EP2939095B1 (en) Device, method, and graphical user interface for moving a cursor according to a change in an appearance of a control icon with simulated three-dimensional characteristics
CN107408012B (zh) 使用可旋转输入机构来控制系统缩放放大率
JP6313395B1 (ja) 描画処理方法、描画処理プログラム及び描画処理装置
CN108829314B (zh) 截图选区界面选择方法、装置、设备及存储介质
WO2016138661A1 (zh) 终端的用户界面的处理方法、用户界面和终端
WO2013174057A1 (zh) 触控屏操作方法及装置
CN102156559A (zh) 一种网络电视遥控器模拟鼠标操作的方法及装置
US20120023424A1 (en) Apparatuses and Methods for Generating Full Screen Effect by Widgets
JP5875262B2 (ja) 表示制御装置
CN113721808A (zh) 一种控制方法及装置
CN113885749A (zh) 图标显示方法、装置及电子设备
CN115220629B (zh) 一种界面元素位置调整方法
CN113342232A (zh) 图标生成方法、装置、电子设备和可读存储介质
CN103164142A (zh) 一种画中画界面下屏幕触点位置的调整方法及电子设备
CN103135912B (zh) 一种生成操作对象的方法和电子设备
CN107728898B (zh) 一种信息处理方法及移动终端
CN114610218B (zh) 一种显示界面的滑动操作方法及显示装置
CN103021083B (zh) 在atm设备上通过拖放图形取款的方法及图形界面
JP6863918B2 (ja) 制御プログラム、制御方法及び情報処理装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant