当前位置:网站首页>07_ Handout on the essence and practical skills of text measurement and geometric transformation
07_ Handout on the essence and practical skills of text measurement and geometric transformation
2022-07-07 07:23:00 【Programmer base camp】
07_ The essence and practical skills of character measurement and geometric transformation The notes
- HenCoder Plus The first 7 course The notes draw ( Two )
- Text measurement 量
- Text measurement 量 One of the difficulties : Centered longitudinal measurement 量
- Text measurement 量 Difficulty 2 : Align left
- Text measurement 量 The third difficulty : in 行
- Canvas Range cutting
- Canvas The geometric transformation of
- Matrix The geometric transformation of
- Use Camera Do three-dimensional rotation
- setLocation()
HenCoder Plus The first 7 course The notes draw ( Two )
Text measurement 量
Draw text :drawText()
Text measurement 量 One of the difficulties : Centered longitudinal measurement 量
- Mode one :Paint.getTextBounds() after , Use (bounds.top + bounds.bottom) / 2
- Mode two :Paint.getFontMetrics() after , Use (fontMetrics.ascend + fontMetrics.descend) / 2
Text measurement 量 Difficulty 2 : Align left
use getTextBounds() After that left To calculate
Text measurement 量 The third difficulty : in 行
use breakText() To calculate
Canvas Range cutting
- clipRect()
- clipPath() clipPath() Why does the cut circle have no anti aliasing effect ? because 「 Forced edge cutting 」
- clipOutRect() / clipOutPath()
Canvas The geometric transformation of
- translate(x, y)
- rotate(degree)
- scale(x, y)
- skew(x, y)
a key :Canvas The geometric transformation method of refers to View The coordinate system of , And the drawing method (drawXxx()) The reference is Canvas Own coordinate system .
About multiple transformations :
Canvas When the transformation method of is called many times , because Canvas The coordinate system of will be transformed as a whole , So when translating 、 rotate 、 Shrinkage 、 When there are multiple transformations such as staggering ,Canvas The transformation parameters of will be very difficult to calculate , Therefore, we can use the way of understanding in reverse order :
take Canvas The transformation of is understood as Canvas The coordinate system of 不 change , Each transformation is only for the internal drawing content 行 Transformation , At the same time Canvas The transformation order of is regarded as reverse ( That is, the transformation written below is executed first ), It can be more convenient 便 Into the 行 Parameter calculation of multiple transformations .
Matrix The geometric transformation of
- preTranslate(x, y) / postTranslate(x, y)
- preRotate(degree) / postRotate(degree)
- preScale(x, y) / postScale(x, y)
- preSkew(x, y) / postSkew(x, y)
among preXxx() Effect and Canvas The method of quasi homonymy is the same , postXxx() Effect and Canvas The order of quasi homonymous methods is opposite .
Be careful
If used repeatedly Matrix, Before use, you need to use Matrix.reset() Come and take Matrix Reset .
Use Camera Do three-dimensional rotation
- rotate() / rotateX() / rotateY() / rotateZ()
- translate()
- setLocation()
among , Generally only rotateX() and rorateY() To do along x Axis or y The rotation of the shaft , And the use of setLocation() To adjust the visual amplitude of zoom .
Yes Camera After the change , Use Camera.applyToCanvas(Canvas) To apply to Canvas.
setLocation()
Generally, the first two parameters of this method are filled 0, The third parameter is negative . Because the unit of this value is hard coded , Therefore, the higher the pixel density of mobile phones , amount to Camera distance View Closer , So it's best to write this value as machine 器 Of density A negative value in direct proportion , for example -6 * density.
边栏推荐
- SQLMAP使用教程(四)实战技巧三之绕过防火墙
- [explanation of JDBC and internal classes]
- Fullgc problem analysis and solution summary
- 抽絲剝繭C語言(高階)數據的儲存+練習
- Several important steps to light up the display
- Sqlserver multithreaded query problem
- MySQL binlog related commands
- 计算机服务中缺失MySQL服务
- Tumor immunotherapy research prosci Lag3 antibody solution
- Blue Bridge Cup Netizen age (violence)
猜你喜欢
面试官:你都了解哪些开发模型?
The currently released SKU (sales specification) information contains words that are suspected to have nothing to do with baby
Basic process of network transmission using tcp/ip four layer model
IP address
Lvs+kept (DR mode) learning notes
Le Service MySQL manque dans le service informatique
抽丝剥茧C语言(高阶)数据的储存+练习
Advanced level of C language (high level) pointer
LC 面试题 02.07. 链表相交 & LC142. 环形链表II
"Xiaodeng in operation and maintenance" meets the compliance requirements of gdpr
随机推荐
Answer to the second stage of the assignment of "information security management and evaluation" of the higher vocational group of the 2018 Jiangsu Vocational College skills competition
Outlier detection technology of time series data
Mobx knowledge point collection case (quick start)
OOM(内存溢出)造成原因及解决方案
Kuboard无法发送邮件和钉钉告警问题解决
Exception of DB2 getting table information: caused by: com ibm. db2.jcc. am. SqlException: [jcc][t4][1065][12306][4.25.13]
計算機服務中缺失MySQL服務
Role of virtual machine
身边35岁程序员如何建立起技术护城河?
记一个并发规则验证实现
freeswitch拨打分机号源代码跟踪
Config distributed configuration center
Select the product attribute pop-up box to pop up the animation effect from the bottom
Example of Pushlet using handle of Pushlet
Basic process of network transmission using tcp/ip four layer model
$parent(获取父组件) 和 $root(获取根组件)
Cloud backup project
Advanced practice of C language (high level) pointer
Freeswitch dials extension number source code tracking
SQLMAP使用教程(四)实战技巧三之绕过防火墙