Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript raphael js字体大小自动调整_Javascript_Raphael - Fatal编程技术网

Javascript raphael js字体大小自动调整

Javascript raphael js字体大小自动调整,javascript,raphael,Javascript,Raphael,我有一个在一个屏幕上编辑的图形-所有绘制的路径都以DB作为百分比坐标保存,因为我知道纸张的宽度和高度 这是这样的,因为我在其他页面上以不同的大小显示相同的图形,这样就可以很容易地将百分比计算回每个大小的实际坐标 我的问题是,我需要向绘图中添加文本,据我所知,没有办法将字体大小设置为以像素为单位的百分比 当然,如果我在一张900x500的纸上编辑图形,然后在一张450x250的纸上显示它,这是行不通的——我需要它根据所有其他内容自动减小字体大小 难以解释的问题-希望这对某人来说是清楚的 有人能帮忙

我有一个在一个屏幕上编辑的图形-所有绘制的路径都以DB作为百分比坐标保存,因为我知道纸张的宽度和高度

这是这样的,因为我在其他页面上以不同的大小显示相同的图形,这样就可以很容易地将百分比计算回每个大小的实际坐标

我的问题是,我需要向绘图中添加文本,据我所知,没有办法将字体大小设置为以像素为单位的百分比

当然,如果我在一张900x500的纸上编辑图形,然后在一张450x250的纸上显示它,这是行不通的——我需要它根据所有其他内容自动减小字体大小

难以解释的问题-希望这对某人来说是清楚的
有人能帮忙吗?有其他方法的想法吗?

您应该能够计算字体大小,而不考虑其测量单位。例如,如果它是20px,您有400x400,那么您更改为200x200,它将是*0.5,所以请进行计算。我了解您的来源,但是如果它从900x500更改为700x400,您将如何计算数量?您可以简单地将文本元素缩放到正确的方向,而不是修改字体大小。例如,给定由cx,cy定义的元素的中心点,您将应用{transform:[S,new_-width/old_-width,new_-height/old_-height,cx,cy]}。这将根据当前显示尺寸与原始尺寸之间的差异,在x轴和y轴上对文本进行不同的缩放。@KevinNielsen-非常喜欢你的想法-只是一个想法,这是否意味着缩放后文本可能会被挤压/拉伸?是的,如果新图像的尺寸与第一幅图像的纵横比不同,我放弃的算法肯定会拉伸文本,就像基于百分比的元素一样。如果您对保留文本纵横比感兴趣,而不考虑环境纵横比,则可以执行{转换:[S,Math.min new_width/old_width,new_height/old_height,Math.min new_width/old_width,new_height/old_height,cx,cy]}。这基本上是相对于最小的尺寸变化来缩放文本=