Processingとnannouの違いについてのメモ(2)
Rect
を頂点から定義する
前回書いたように、Rect
は中心の座標と高さ、幅で定義できます。とはいえ、頂点の座標でやる方法もなんかあるのかな?と思っていたら、
let r = Rect::from_corners(pt1, pt2);
という感じで2つの頂点からつくることもできました。
あと、各頂点の座標を取るには、corners()
とか corner_at_index()
とかいうメソッドがあったので、ある四角形と隣接する四角形を描画するには、
// 左上が 0 でそこから時計回り let pt1 = r1.corner_at_index(0); // 四角形の辺の長さ let w = 100.0; let pt2 = pt1 + vec2(w, w); let r2 = Rect::from_corners(pt1, pt2);
みたいな感じでも書けます。
キャンバスを回転縮小させる
Draw
にrotate()
とかscale()
みたいなメソッドが生えているので、
fn view(app: &App, model: &Model, frame: Frame) { let draw = app.draw().rotate(model.rotate).scale(model.scale); // ...snip... draw.to_frame(app, &frame).unwrap(); }
みたいな感じでやればいいみたいでした。ちなみに私はこの使い方を勘違いして、⇣で「動かない...」と悩んでいました(恥)
let draw = app.draw(); draw.rotate(model.rotate); draw.scale(model.scale);