【发布时间】:2017-08-27 02:08:42
【问题描述】:
我将制作一个非常简单的 GUI 工具包。此工具包中的两个元素将是一个矩形和一个圆形按钮。我有两个问题:
#1
让R-Tree 在圆圈上带有位掩码、绘图索引系统或完全其他的东西会更有效吗?
“绘制索引系统”是指在画布上“绘制”GUI 元素,其作用类似于输入掩码(每个“像素”是空指针或指向按钮的指针),并在窗口大小时更新它变化。每当发生输入事件(比如说悬停事件)时,您会:
- 获取光标位置
- 计算输入画布上该点的索引(就像处理图像一样)
- 从该索引中检索指向相应 GUI 元素的指针。
#2
元素应该如何实现?本质上,一旦确定了元素,应该如何处理输入?我应该:
- 在实际的帧缓冲区上绘制一些东西,然后运行回调(如果存在指针)以获得功能?
或者,
- 启动“悬停”回调,它可能决定或不决定在帧缓冲区上绘制。
如果可能的话,我想避免 OOP。
对于任何认为这个问题含糊不清的人,它要求展示或找到一个简单的 GUI 工具包的最佳(如果有的话)实现,其中唯一的元素是矩形和圆形按钮,如上所述。
基本上,我是在问这个:
给定一组任意元素的位置/大小和光标位置,确定光标当前与哪个元素相交的最快方法是什么?
【问题讨论】:
-
GUI 工具包是人类活动的一个分支,其中 OOP 似乎不可避免。
-
是的,但是我只是想知道使用可能具有不同形状或不透明度的元素实现 GUI 的最有效方法。
-
R-tree 和索引系统看起来都不是实现 GUI 的好方法。
-
认真的吗?没有任何解释的否决票?不管是谁做的,你至少可以说明原因。
-
我猜想downwote来自这样一个事实,即您的问题非常模糊并且不承认权威的规范答案,但我当然无法读懂他们的想法。
标签: c algorithm user-interface drawing x11