我想要一个具有放大级别的文本框rescale,这样一个文本单元总是被分配一个水平轴长度单位。文本宽度不应更改,而应更改字符之间的间距。
例如,如果x轴显示[0:50]
,则应显示50个字符,每个整数位置一个。如果放大率增加使得显示仅包括[0:10]
,则仅显示十个字符,再次沿水平轴在每个整数位置放置一个字符。
最后,当放大水平低于某个阈值时,理想情况下不显示文本,该阈值由沿着跨越轴的范围的水平线可清晰地打印的字符数确定。
我尝试过使用text
对象,但它似乎没有相关属性来允许这种动态行为。相反,我考虑将N
- 长度字符串分成N
个单位长度的字符串,并将每个字符串放在一个定义的x位置,但我很难弄清楚如何只展示那些相关的在普遍的缩放级别(超出轴的边界有一些溢出的字符)。相反,使用这种方法,所有字符在缩放级别上显得混乱,以至于无法合理地容纳打印的字符数。
因此,我询问是否可以建议除了打印一系列单位长度字符串之外的其他解决方案,如果不是,可以分别在高和低变焦时解决文本溢出和文本重叠的双重问题(第一种可能是以某种方式阻止在轴外打印信息;第二种似乎需要一些动态放大感知方法来抑制文本输出在某个x轴范围内或以上。