惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
CXSECURITY Database RSS Feed - CXSecurity.com
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园_首页
博客园 - 【当耐特】
小众软件
小众软件
A
About on SuperTechFans
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Martin Fowler
Martin Fowler
M
MIT News - Artificial intelligence
Vercel News
Vercel News
爱范儿
爱范儿
Google DeepMind News
Google DeepMind News
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
T
Threatpost
人人都是产品经理
人人都是产品经理
H
Help Net Security
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
L
LINUX DO - 热门话题
B
Blog
F
Full Disclosure
P
Proofpoint News Feed
H
Hackread – Cybersecurity News, Data Breaches, AI and More
T
Threat Research - Cisco Blogs
L
LangChain Blog
博客园 - Franky
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Project Zero
Project Zero
I
InfoQ
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
The Cloudflare Blog
V
Vulnerabilities – Threatpost
云风的 BLOG
云风的 BLOG
C
Cyber Attacks, Cyber Crime and Cyber Security
C
Check Point Blog
K
Kaspersky official blog
WordPress大学
WordPress大学
腾讯CDC
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
S
Securelist
T
Tenable Blog
N
News and Events Feed by Topic
The GitHub Blog
The GitHub Blog
W
WeLiveSecurity
Stack Overflow Blog
Stack Overflow Blog
O
OpenAI News
Blog — PlanetScale
Blog — PlanetScale
量子位
Simon Willison's Weblog
Simon Willison's Weblog
T
Tor Project blog
P
Proofpoint News Feed

博客园 - sinlight23

Web开发框架趋势 ASP.NET MVC - PageData的应用 ASP.NET拾遗 - Health Monitoring .NET Xml序列化时会忽略值为"默认值"的Property或Field ASP.NET MVC 实现模式 - ModelBuilder Enumerable.Range和自定义的IntRange/DateRange HOWTO: Web Deploy时服务器报登录失败的解决方法 HOWTO: 为GitHub for Windows指定代理服务器 ASP.NET MVC - 在MVC 3项目中使用ASP.NET Bundling and Minification机制 脚印:关于错误编码的管理的一些思考 脚印:软件开发随想录 脚印:关于扩展方法的使用 脚印:一次重构讨论 脚印:记录一次重构,将规则生产和规则消费(执行委托)分离 HOWTO: IE8下处理iframe自适应高度 Microsoft ASP.NET 2.0 AJAX 相关信息备忘 MVC 模式在javascript中的应用 VS2010 "SQL Server 2005 Database Project" 使用笔记(二) VS2010 "SQL Server 2005 Database Project" 使用笔记
腳印: 初學者的心態
sinlight23 · 2010-01-18 · via 博客园 - sinlight23

朋友在做一個類似SpeedText 的IPhone 軟件, 實做下來, 目前性能和筆畫的流暢優美程度都不及這個日本人做的小軟件. 這是周六晚上閑來無趣, 跟朋友聊天時談到的, 這個軟件的用途是, 找回過去人們寫信讀信的感覺, 將字跡or書法躍然于信紙(圖片)之上, 發送到友人的郵箱中.

image

順著朋友的指引, 知道了要想做到筆畫流暢, 一般采用調用貝塞爾函數的方式來連接點. 于是找到一個同事, 給自己做了些科普工作, 了解到一般貝塞爾函數是以三個點的坐標作為輸入, 產生一個一元二次方程. TrueType 字型就运用了以贝塞尔样条组成的二次贝塞尔曲线. (不要問我什么是樣條, 偶全然不知. 囧) 也有三次方程的情形, 已經超出了本人的承受范圍, Orz.

image

之前沒看過IPhone的SDK, 朋友發過來函數原型, 才知道此SDK中的貝塞爾函數 CGContextAddQuadCurveToPoint, 要求傳入參數是兩點的坐標以及一個控制點的坐標, 實在難住了我這樣的數學大菜鳥. 朋友是個十分有專研精神的人, 找到了一篇 http://blog.hvilela.com/2009/03/bezier-curve-through-3-points.html (可能需要翻開而不是直接點擊打開), 據說, 是個正解. 但是效果依然不顯著, 未達到期望的那種優美程度, 另外性能問題依然堪憂.

其實回顧上述過程, 自己完全是個旁觀者, 摻和進去, 除了那晚無聊之外, 一則是覺得問題本身對我而言新鮮有趣, 另外則是感慨數學實乃編程之重要武器, 故記錄之以起驚醒之用. 雖說目前工作中很少需要對某些知識做如此深入探尋(囧), 甚至有漸轉虛無犬儒之嫌, 也不要誤以為知識無用, 基礎理論無用. 路還很長, 希望可以像喬布斯學習, 長久保持一顆初學者的心態.

P.S. 簡單的在兩點間繪制曲線的方法.  可以看出一些老外的做事的細致風范http://www.tbray.org/ongoing/When/200x/2009/01/02/Android-Draw-a-Curved-Line