猜猜猜: Actionscript中宽高/坐标以0.05为步进值,很可能和打印有关
2014-04-14 17:35
295 查看
>>>>>关于0.05的坊间资料:
http://riaoo.com/?p=2473
===============================================
前述:传闻说在flash里最小的长度单位不是像素,而是 Twips(缇)。二十分之一的像素称为Twips。如何证明?
分析:在Flash里,可视对象的坐标(如 x 和 y 属性)是一个 Number 类型的变量。意味着可以为它设置一个非整型带小数点的数。例如可以把显示对象放在点(0.597, 0.123)。一个奇怪的现象是:无论你设置坐标为何值,trace 出来的坐标总是
0.05 的倍数。当坐标不是 0.05 的倍数时,坐标值会被向下取整(而不是四舍五入)。如点(0.597, 0.123)会被取整为(0.55, 0.1)。
总结:不知道这样是否证明了flash里使用的最小长度单位就是二十分之一的像素,即 Twips。另外,后来搜阅资料发现,Twips 不是 Flash 特有的。
===============================================
>>>>>百度知道:
http://zhidao.baidu.com/link?url=vfufWIyn1F4siESPIqLThyaCWkg2m3QpgFbpntELEpJYtmpO9qYcgXjGa7KhITT6ECvdQKYZ89dE-fkxrTuzH_
===============================================
「Twip」中文译为"缇",是一种和屏幕无关的长度单位,目的是为了让应用程序元素输出到不同设备时都能保持一致的计算方式。打印机的一个点,即我们说的“磅”,相当于20个 Twips,一英吋相当于 1440个Twips, 一公分则相当于567 Twips ,也就是说,如果屏幕上某个对象的长度是1440 Twip的话,将会印出一英吋来。
由于我们在屏幕上操作时会习惯用「像素」(也就是我们常说的屏幕分辨率DPI,系统可以设置各种DPI值),所以我们直接输入数字时必须再将「像素」换算成「Twip」。当DPI设置为96时(系统默认值),1个像素=(1/96)*1440=15 Twip;当DPI设置为120时,1个像素=(1/120)*1440=12 Twip。当DPI为96时,如果希望窗体的高是「400」像素,宽是「300」像素,属性的设定值就是: Height=400×15=6000 Twip,Width =300×15=4500 Twip.
在VisualBasic应用程序中,屏幕(Screen)是一个对象。其Width和Height属性以Twip为单位反映出屏幕的宽度和高度。而TwipsPerPixelX和TwipsPerPixelY这两个属性只与硬件有关,而与屏幕上可设定的分辨率无关。将Width除以TwipsPerPixelX可以计算出屏幕的水平分辨率(像素数),同样将Height除以TwipsPerPixelY也可以计算出屏幕的垂直分辨率。要想保持一个窗口或是控件的物理大小不变,只要计算出设计时的分辨率与实际运行时的分辨率的比值,然后根据这个比值来调节窗口和其中的控件的大小和相对位置,以及显示的字体尺寸,就可以保持同一应用程序的窗口在不同的系统下的物理外观(当然在不同尺寸的显示器上只能保持比例不变,物理大小还是不同的)。
================================================
>>>>>猜猜猜:
由上面的内容可知,1像素并不等于20缇。所以最上面的“坊间。。。”是不正确的。
1磅=20缇。
1缇=0.05磅
磅是打印单位,缇自然也可以称其为打印单位。
参考 flash.printing.printJob 类中关于长度的说明,可知Actionscript中在打印是用到的长度单位是:磅。
于是Actionscript似乎能够和“缇”产生联系。
标题提及到的步进值(0.05)是否和“1缇=0.05磅”中的0.05有关系呢?
http://riaoo.com/?p=2473
===============================================
前述:传闻说在flash里最小的长度单位不是像素,而是 Twips(缇)。二十分之一的像素称为Twips。如何证明?
分析:在Flash里,可视对象的坐标(如 x 和 y 属性)是一个 Number 类型的变量。意味着可以为它设置一个非整型带小数点的数。例如可以把显示对象放在点(0.597, 0.123)。一个奇怪的现象是:无论你设置坐标为何值,trace 出来的坐标总是
0.05 的倍数。当坐标不是 0.05 的倍数时,坐标值会被向下取整(而不是四舍五入)。如点(0.597, 0.123)会被取整为(0.55, 0.1)。
总结:不知道这样是否证明了flash里使用的最小长度单位就是二十分之一的像素,即 Twips。另外,后来搜阅资料发现,Twips 不是 Flash 特有的。
===============================================
>>>>>百度知道:
http://zhidao.baidu.com/link?url=vfufWIyn1F4siESPIqLThyaCWkg2m3QpgFbpntELEpJYtmpO9qYcgXjGa7KhITT6ECvdQKYZ89dE-fkxrTuzH_
===============================================
「Twip」中文译为"缇",是一种和屏幕无关的长度单位,目的是为了让应用程序元素输出到不同设备时都能保持一致的计算方式。打印机的一个点,即我们说的“磅”,相当于20个 Twips,一英吋相当于 1440个Twips, 一公分则相当于567 Twips ,也就是说,如果屏幕上某个对象的长度是1440 Twip的话,将会印出一英吋来。
由于我们在屏幕上操作时会习惯用「像素」(也就是我们常说的屏幕分辨率DPI,系统可以设置各种DPI值),所以我们直接输入数字时必须再将「像素」换算成「Twip」。当DPI设置为96时(系统默认值),1个像素=(1/96)*1440=15 Twip;当DPI设置为120时,1个像素=(1/120)*1440=12 Twip。当DPI为96时,如果希望窗体的高是「400」像素,宽是「300」像素,属性的设定值就是: Height=400×15=6000 Twip,Width =300×15=4500 Twip.
在VisualBasic应用程序中,屏幕(Screen)是一个对象。其Width和Height属性以Twip为单位反映出屏幕的宽度和高度。而TwipsPerPixelX和TwipsPerPixelY这两个属性只与硬件有关,而与屏幕上可设定的分辨率无关。将Width除以TwipsPerPixelX可以计算出屏幕的水平分辨率(像素数),同样将Height除以TwipsPerPixelY也可以计算出屏幕的垂直分辨率。要想保持一个窗口或是控件的物理大小不变,只要计算出设计时的分辨率与实际运行时的分辨率的比值,然后根据这个比值来调节窗口和其中的控件的大小和相对位置,以及显示的字体尺寸,就可以保持同一应用程序的窗口在不同的系统下的物理外观(当然在不同尺寸的显示器上只能保持比例不变,物理大小还是不同的)。
================================================
>>>>>猜猜猜:
由上面的内容可知,1像素并不等于20缇。所以最上面的“坊间。。。”是不正确的。
1磅=20缇。
1缇=0.05磅
磅是打印单位,缇自然也可以称其为打印单位。
参考 flash.printing.printJob 类中关于长度的说明,可知Actionscript中在打印是用到的长度单位是:磅。
于是Actionscript似乎能够和“缇”产生联系。
标题提及到的步进值(0.05)是否和“1缇=0.05磅”中的0.05有关系呢?
相关文章推荐
- win7环境下C++创建进程
- JS 拖动DIV 需要JQUERY 支持
- BSON TYPE
- Lua输入输出库
- Oracle SQL 语句
- 错误fatal signal 11 code==1
- 深度学习总结
- ios 一步一步学会自定义地图吹出框(CalloutView)-->(百度地图,高德地图,google地图)
- POJ 2632:Crashing Robots:模拟试手
- C语言 重定向 从txt文件取数据作为输入代替键盘输入
- 堆排序
- python操作mysql基础之查询、比对、求和
- sdut 2153:Clockwise(第一届山东省省赛原题,计算几何+DP)
- 利用tar备份linux系统详解
- mysql服务不能启动(The server quit without updating PID file) 解决方法
- 成员函数指针以及C++委托
- Lua标准库中部分重要函数
- JavaScript编码转换(UTF-8、UTF-16)
- Part2 MapGIS云GIS软件组件开发入门
- JSP 9 大内置对象详解