※この翻訳ドキュメントはスクリプトによって出力・同期されています。内容が怪しそうな場合はGitHubにissueを追加したり英語の原文の確認をお願いします。
GraphicsBase クラスの rotation_around_point インターフェイス¶
このページではGraphicsBase
クラス(Rectangle
などの各グラフィックスクラスの基底クラス)のget_rotation_around_point
とset_rotation_around_point
の各メソッドのインターフェイスについて説明します。
各インターフェイスの概要¶
get_rotation_around_point
メソッドは指定された座標基準の回転量を取得し、set_rotation_around_point
メソッドは指定された座標を基準とした回転量を更新します。
これらの回転量は相対値であり、各回転量は座標ごとに異なる値が保持されます。例えばx=50, y=50の座標とx=100, y=100の座標の回転量の値はそれぞれ別の値になります。
基本的な使い方¶
get_rotation_around_point
メソッドはx
とy
の引数の指定を必要とし、指定された座標での回転量を返却します。set_rotation_around_point
メソッドはx
とy
、そしてrotation
の引数の指定を必要とします。全ての引数と返却値はInt
型になります。
以下の例では二つの四角を作成し、各四角をタイマーのハンドラ内で回転させています。1つ目の四角は左上の座標(x=50, y=50
)で回転させていて、2つ目の四角は右下の座標(x=100, y=100
)で回転させています。
from typing_extensions import TypedDict
import apysc as ap
class _RectanglesOptions(TypedDict):
rectangle_1: ap.Rectangle
rectangle_2: ap.Rectangle
def on_timer(e: ap.TimerEvent, options: _RectanglesOptions) -> None:
"""
The handler that the timer calls.
Parameters
----------
e : ap.TimerEvent
Event instance.
options : dict
Optional arguments dictionary.
"""
x: ap.Int = ap.Int(50)
y: ap.Int = ap.Int(50)
rectangle_1: ap.Rectangle = options["rectangle_1"]
rotation: ap.Int = rectangle_1.get_rotation_around_point(x=x, y=y)
rotation += 1
rectangle_1.set_rotation_around_point(rotation=rotation, x=x, y=y)
rectangle_2: ap.Rectangle = options["rectangle_2"]
x = ap.Int(100)
y = ap.Int(100)
rotation = rectangle_2.get_rotation_around_point(x=x, y=y)
rotation += 1
rectangle_2.set_rotation_around_point(rotation=rotation, x=x, y=y)
ap.Stage(
stage_width=150,
stage_height=150,
background_color=ap.Color("#333"),
stage_elem_id="stage",
)
sprite: ap.Sprite = ap.Sprite()
sprite.graphics.begin_fill(color=ap.Color("#0af"), alpha=0.5)
rectangle_1: ap.Rectangle = sprite.graphics.draw_rect(x=50, y=50, width=50, height=50)
rectangle_2: ap.Rectangle = sprite.graphics.draw_rect(x=50, y=50, width=50, height=50)
options: _RectanglesOptions = {"rectangle_1": rectangle_1, "rectangle_2": rectangle_2}
timer: ap.Timer = ap.Timer(on_timer, delay=ap.FPS.FPS_60, options=options)
timer.start()
ap.save_overall_html(dest_dir_path="graphics_base_rotation_around_point_basic_usage/")
get_rotation_around_point API¶
特記事項: このAPIドキュメントはドキュメントビルド用のスクリプトによって自動で生成・同期されています。そのためもしかしたらこの節の内容は前節までの内容と重複している場合があります。
[インターフェイスの構造] get_rotation_around_point(self, *, x: apysc._type.number.Number, y: apysc._type.number.Number) -> apysc._type.int.Int
[インターフェイス概要]
指定された座標を基準とした回転量を取得します。
[引数]
x
: NumberX座標。
y
: NumberY座標。
[返却値]
rotation
: Int指定された座標基準による回転量。
[コードサンプル]
>>> import apysc as ap
>>> stage: ap.Stage = ap.Stage()
>>> sprite: ap.Sprite = ap.Sprite()
>>> sprite.graphics.begin_fill(color=ap.Color("#0af"))
>>> rectangle: ap.Rectangle = sprite.graphics.draw_rect(
... x=50, y=50, width=50, height=50
... )
>>> x: ap.Number = ap.Number(100)
>>> y: ap.Number = ap.Number(100)
>>> rectangle.set_rotation_around_point(rotation=ap.Int(45), x=x, y=y)
>>> rectangle.get_rotation_around_point(x=x, y=y)
Int(45)
set_rotation_around_point API¶
特記事項: このAPIドキュメントはドキュメントビルド用のスクリプトによって自動で生成・同期されています。そのためもしかしたらこの節の内容は前節までの内容と重複している場合があります。
[インターフェイスの構造] set_rotation_around_point(self, *, rotation: apysc._type.int.Int, x: apysc._type.number.Number, y: apysc._type.number.Number) -> None
[インターフェイス概要]
指定された座標基準の回転量を更新します。
[引数]
rotation
: Int設定する回転量。
x
: NumberX座標。
y
: NumberY座標。