NSRect a= NSMakeRect(100, 100, 50, 0);
NSRect b= NSMakeRect(149, 99, 2, 2);
NSLog(NSStringFromRect(NSUnionRect(a, b))); // {{149, 99}, {2, 2}} ?
確かに高さが0ならその面は面積のない空集合である.
よってUnioinをとったらbのみがのこる….
でも欲しかった回答は{{100, 99}, {51, 2}}なんだ.
NSBezierPathに水平線をかかせてその端部に矢印を描いた.
更新すべき描画領域を計算するのに双方のboundsをUnionすればよいと思ったのだが…
NSBezierPathに水平線のboundsを問えばheight=0と答えるという落とし穴.
#こっちがむしろ問題かもね.でもこれも数学的にはただしいか….
#(でも1dotはやっぱりないとだめじゃない?)
0 件のコメント:
コメントを投稿