struct

struct モジュールは、xdwlib が用いる 座標や領域を表すクラスを扱います。

Point オブジェクト

Point クラスは、座標または用紙等の大きさを表します。DocuWorks で用いる座標は、用紙の左上隅や親アノテーションの位置を原点 (0, 0) とし、原点から右方への変位 (x 座標) および下方への変位 (y 座標) で表します。数学で通常用いる座標系とは上下が逆転していることに注意してください (これに対応して、回転角も時計回りとなっています)。

Point クラスはイテレータプロトコルをサポートしています。next() で 横位置 (x 座標)、縦位置 (y 座標) を順次返します。

コンストラクタ

クラス Point(x, y)
x, y はそれぞれ横位置 (x 座標) および縦位置 (y 座標) です。単位はミリメートルです。1/100 ミリメートル未満の部分も値として保持されますが、XDWAPI の各機能を呼び出す際は切り捨てられます。

インスタンス属性

x
横位置 (x 座標) です。単位はミリメートルです。

y
縦位置 (y 座標) です。単位はミリメートルです。

インスタンスメソッド

__add__(pnt)
Point(self.x + pnt.x, self.y + pnt.y) を返します。

__div__(n)
Point(self.x / n, self.y / n) を返します。

__eq__(pnt)
selfpnt の位置が同一である場合は True を、そうでない場合は False を返します。

__mul__(n)
Point(self.x * n, self.y * n) を返します。

__ne__(pnt)
selfpnt の位置が同一である場合は False を、そうでない場合は True を返します。

__neg__()
Point(-self.x, -self.y) を返します。

__nonzero__()
self.xself.y のいずれも 0 である場合は False を、そうでない場合は True を返します。

__rmul__(n)
__mul__(n) と同じです。

__sub__(pnt)
Point(self.x - pnt.x, self.y - pnt.y) を返します。

ceil()
x 座標および y 座標を減少方向へ整数化した新たな位置を返します。

fix()
x 座標および y 座標の小数部分を切り捨てた新たな位置を返します。

floor()
x 座標および y 座標を増加方向へ整数化した新たな位置を返します。

int()
x 座標および y 座標を int 化した新たな位置を返します

rotate(degree, origin=None)
回転後の位置を返します。degree は時計回りの回転角です。単位は度です。origin は回転の中心となる位置を表す Point オブジェクトです。単位はミリメートルです。originNone である場合は、Point(0, 0) とみなします。

round(places=0)
x 座標および y 座標の小数部分を四捨五入して小数点以下第 places 位までとした新たな位置を返します。places が 0 以下の場合は小数点以上 places 桁が 0 となるように四捨五入します。たとえば、p = Point(123.45, 234.56) であるとき、p.round()Point(123.00, 234.00) を、p.round(1)Point(123.40, 234.50) を、p.round(-1)Point(120.00, 230.00) を、それぞれ返します。

shift(x, y)
平行移動後の位置を返します。x, y はそれぞれ横位置および縦位置の移動距離です。単位はミリメートルです。縦位置は下方が増加方向です。2 引数 x, y の代わりに 2 要素のタプル (x, y) あるいは Point オブジェクト 1 個を与えることもできます。

Rect オブジェクト

Rect クラスは、半開矩形領域を表します。

Rect クラスはイテレータプロトコルをサポートしています。next() で 左端、上端、右端、下端の位置を順次返します。

コンストラクタ

クラス Rect(left=0, top=0, right=0, bottom=0, half_open=True)
left, top, right, bottom はそれぞれ左端、上端、右端、下端の位置です。単位はミリメートルです。
lefttop は合わせて lefttop=(left, top) と指定することもでき、また rightbottom も合わせて rightbottom=(right, bottom) と指定することもできます。left, top, right, bottom, lefttop, rightbottom はそれぞれ l, t, r, b, lt, rb で指定することもできます。ただし、これらは初期化の際にのみ利用できる略号で、初期化が終わったら利用できません。
half_openFalse の場合は、right および bottom が閉鎖区間の終端値となります。
(注) 縦位置は下方が増加方向であることと、half_openTrue の場合は半開矩形領域の指定となることに注意してください。位置指定では 1/100 ミリメートル未満の部分も値として保持されますが、XDWAPI の各機能を呼び出す際は切り捨てられます。

インスタンスメソッド

__eq__(r)
半開矩形領域r と合致すれば True を、合致しなければ False を返します。

__ne__(r)
半開矩形領域r と合致すれば False を、合致しなければ True を返します。

__mul__(n)
半開矩形領域の左上隅を固定して縦横に n 倍した値を Rect オブジェクトで返します。たとえば、Rect(1, 2, 3, 4) * 10Rect(1.00, 2.00, 21.00, 22.00) を返します。

__rmul__(n)
__mul__(n) と同じです。

__div__(n)
半開矩形領域の左上隅を固定して縦横に n 倍した値を Rect オブジェクトで返します。たとえば、Rect(1, 2, 3, 4) / 10Rect(1.00, 2.00, 1.20, 2.20) を返します。

closed()
現在の値が半開矩形領域であるとみなし、閉鎖矩形領域 (right および bottom が閉鎖区間の終端値であるような矩形領域指定。以下同じ) へ変換した値を返します。

half_open()
現在の値が閉鎖矩形領域であるとみなし、半開矩形領域へ変換した値を返します。

int()
self の属性 left, top, right, bottom それぞれを int 化した値を Rect オブジェクトで返します。

position()
半開矩形領域の左上隅の位置を Point オブジェクトで返します。

position_and_size()
2 要素のタプル (self.position(), self.size()) を返します。

rotate(degree, origin=None)
半開矩形領域を回転した後の領域を返します。degree は時計回りの回転角です。単位は度です。origin は回転の中心となる位置を表す Point オブジェクトです。単位はミリメートルです。originNone である場合は、Point(0, 0) とみなします。

shift(pnt)
半開矩形領域を平行移動した後の値を Rect オブジェクトで返します。

size()
半開矩形領域の大きさを Point 値で返します。

Comments