2017-01-03 67 views
0

我目前正在嘗試標記我在地圖中繪製的線條(在我的iOS應用中,但我想它適用於所有地圖)。沿着地圖上的路徑繪製文本(如f.e.街道名稱)

所以我現在正在做的事情,我簡化了我的路徑,以便我擺脫大多數小曲線,然後沿着那條線畫出我的字形。目前,看起來像這樣:

enter image description here

在一個已經確定該行的某些部分。如果線條非常直,角落不是太尖。

但是在某些地方,你什麼都讀不了......所以有什麼策略可以讓它看起來更漂亮? 有誰知道算法或就如何使我的路徑看起來像紅線這裏的策略:

enter image description here

我很高興,關於如何提高我的畫:)

+0

您需要的是使用實際線上的點作爲控制點創建的更流暢的[Bezier曲線](https://en.wikipedia.org/wiki/B%C3%A9zier_curve)。選中[將曲線添加到路徑中](https://developer.apple.com/library/content/documentation/2DDrawing/Conceptual/DrawingPrintingiOS/BezierPaths/BezierPaths.html#//apple_ref/doc/uid/TP40010156-CH11- SW23)部分,以瞭解如何在Core Graphics路徑圖中完成此操作。 – lukya

+0

我用數字更新了我的圖紙......所以我想我也必須過濾掉兩個向量之間的角度太小的零件。爲了擺脫第5,7和9點?然後我可以平滑其餘的,對吧?我在這裏發現了一個很好的方法:http://merowing.info/2012/04/drawing-smooth-lines-with-cocos2d-ios-inspired-by-paper/ – Georg

回答

0

我的任何想法在我的商業地圖渲染系統中,通過找到沒有尖角的部分線條來做到這一點。如果標籤轉角直角或更大,則無法使標籤看起來更好。如果沒有足夠長的時間段,我會縮寫標籤(例如,Link Road成爲Link Rd),或將其分成兩行。如果仍然無處可以繪製標籤,我不會畫它。

另一件很重要的事情是調整間距,使上行和下行不發生衝突,因此在繪製文本時需要查看每個相鄰字母對的邊界框,並將少量空間添加爲必要。

我不打擾我的線條,因爲你建議你的紅線。這似乎並不重要,至少在街道標籤上。