2018-09-01から1ヶ月間の記事一覧

Core Text で縦書き(2)

NSAttributedString.draw(in:) なら Core Text 無しで縦書きできんじゃね? と思って試してみたけどそんな単純じゃなかった。 役物だけ回転しているので近づこうとしている気配はあるけど、 なにか指定方法があるのかどうなのか、ちょっとわからなかった。 さ…

Core Text で縦書き

Core Text でテキストを描画するには CTFrameDraw(_:_:) を呼べばいいのだけど、そのパラメータをどうつくるかという話。 FrameDraw 第2引数の CGContext は UIGraphicsGetCurrentContext() で得られる。 FrameDraw 第1引数の CTFrame は CTFramesetterCreat…

NSString の UIKit 拡張で文字列を描くやり方

iOS の UIView 派生クラスで func draw(_:) を override して UIBezierPath やら UIImage やらを描画する横並びで、 文字列も描画するやつの話。 import UIKit すると NSString.draw(at:withAttributes:) や NSString.draw(in:withAttributes:) が使える。 N…

diff(A*)

Rogue Likeか Tower Defense か何かで使おうとしてA*をつくっていたけど これってdiffだよね〜と思ってたらやっぱりdiffだったので diffにも使えるように改造していた。 ランダムに問題を生成してedit graph をA*でたどったもの A*のパラメータとしては S: …

Xcode update

Xcode のバージョンが 10.0 に上がった! Swift のバージョンが 4.2 に上がった! $ xcodebuild -version Xcode 10.0 Build version 10A255 $ swift --version Apple Swift version 4.2 (swiftlang-1000.11.37.1 clang-1000.11.45.1) Target: x86_64-apple-dar…

A*

ここのところA*をSwiftで実装していた。 アルゴリズムはwikipediaのとおり https://ja.wikipedia.org/wiki/A* 案の定なかなか動かないのだけど、いちど動いてしまえばああそうか、みたいな簡単なものである。 なかなかうまくいかないのは日本語の解釈の問題…