表示するサンプルコードの言語を指定できます。

図形の描画

Altseedで図形を描画するにはGeometryObject2Dという図形の描画専用のオブジェクトのクラスとShapeという図形クラスを使用します。

ここのサンプルに掲載されている図形に限らず、様々な図形を描画できます。

四角

円弧

三角形

多角形

円の描画

SS

C++

#include <Base.h>

/**
@brief  円を描画するサンプル。
*/
int main()
{
    // Altseedを初期化する。
    asd::Engine::Initialize(asd::ToAString("GeometryObject2D_CircleShape").c_str(), 640, 480, asd::EngineOption());

    // 図形描画オブジェクトのインスタンスを生成する。
    auto geometryObj = std::make_shared<asd::GeometryObject2D>();

    // 図形描画オブジェクトのインスタンスをエンジンに追加する。
    asd::Engine::AddObject2D(geometryObj);

    // 円の図形クラスのインスタンスを生成する。
    auto arc = std::make_shared<asd::CircleShape>();

    // 円の外径、中心位置を指定する。
    arc->SetOuterDiameter(400);
    arc->SetPosition(asd::Vector2DF(320, 240));

    // 円を描画する図形として設定する。
    geometryObj->SetShape(arc);

    // Altseedのウインドウが閉じられていないか確認する。
    while (asd::Engine::DoEvents())
    {
        // Altseedを更新する。
        asd::Engine::Update();
    }

    // Altseedを終了する。
    asd::Engine::Terminate();
}

C#

/// <summary>
/// 円を描画するサンプル。
/// </summary>
public class GeometryObject2D_CircleShape
{
    public string Description
    {
        get { return ""; }
    }
    public string Title
    {
        get { return ""; }
    }
    public string ClassName
    {
        get { return "GeometryObject2D_CircleShape"; }
    }

    [System.STAThread]
    static void Main(string[] args)
    {   
        // Altseedを初期化する。
        asd.Engine.Initialize("GeometryObject2D_CircleShape", 640, 480, new asd.EngineOption());

        // 図形描画オブジェクトのインスタンスを生成する。
        var geometryObj = new asd.GeometryObject2D();

        // 図形描画オブジェクトのインスタンスをエンジンに追加する。
        asd.Engine.AddObject2D(geometryObj);

        // 円の図形クラスのインスタンスを生成する。
        var arc = new asd.CircleShape();

        // 円の外径、中心位置を指定する。
        arc.OuterDiameter = 400;
        arc.Position = new asd.Vector2DF(320, 240);

        // 円を描画する図形として設定する。
        geometryObj.Shape = arc;

        // Altseedのウインドウが閉じられていないか確認する。
        while (asd.Engine.DoEvents())
        {
            // Altseedを更新する。
            asd.Engine.Update();

        }

        // Altseedを終了する。
        asd.Engine.Terminate();
    }
}

Java

/**
 * 円を描画するサンプル。
*/
public class GeometryObject2D_CircleShape 
{
    public java.lang.String getDescription() {
        return "";
    }
    public java.lang.String getTitle() {
        return "";
    }
    public java.lang.String getClassName() {
        return "GeometryObject2D_CircleShape";
    }
    public static void main(String args[])
    {
        // Altseedを初期化する。
        asd.Engine.Initialize("GeometryObject2D_CircleShape", 640, 480, new asd.EngineOption());

        // 図形描画オブジェクトのインスタンスを生成する。
        asd.GeometryObject2D geometryObj = new asd.GeometryObject2D();

        // 図形描画オブジェクトのインスタンスをエンジンに追加する。
        asd.Engine.AddObject2D(geometryObj);

        // 円の図形クラスのインスタンスを生成する。
        asd.CircleShape arc = new asd.CircleShape();

        // 円の外径、中心位置を指定する。
        arc.setOuterDiameter(400);
        arc.setPosition(new asd.Vector2DF(320, 240));

        // 円を描画する図形として設定する。
        geometryObj.setShape(arc);

        // Altseedのウインドウが閉じられていないか確認する。
        while(asd.Engine.DoEvents())
        {
            // Altseedを更新する。
            asd.Engine.Update();

        }


        // Altseedを終了する。
        asd.Engine.Terminate();
    }
}

弧の描画

SS

C++

#include <Base.h>

/**
@brief  弧を表示するサンプル。
*/
int main()
{
    // Altseedを初期化する。
    asd::Engine::Initialize(asd::ToAString("GeometryObject2D_ArcShape").c_str(), 640, 480, asd::EngineOption());

    // 図形描画オブジェクトのインスタンスを生成する。
    auto geometryObj = std::make_shared<asd::GeometryObject2D>();

    // 図形描画オブジェクトのインスタンスをエンジンに追加する。
    asd::Engine::AddObject2D(geometryObj);

    // 弧の図形クラスのインスタンスを生成する。
    auto arc = std::make_shared<asd::ArcShape>();

    // 弧の外径、内径、頂点数、中心位置、開始頂点番号、終了頂点番号を指定する。
    arc->SetOuterDiameter(400);
    arc->SetInnerDiameter(40);
    arc->SetNumberOfCorners(96);
    arc->SetPosition(asd::Vector2DF(320, 240));
    arc->SetStartingCorner(90);
    arc->SetEndingCorner(45);

    // 弧を描画する図形として設定する。
    geometryObj->SetShape(arc);


    // Altseedのウインドウが閉じられていないか確認する。
    while (asd::Engine::DoEvents())
    {
        // Altseedを更新する。
        asd::Engine::Update();
    }

    // Altseedを終了する。
    asd::Engine::Terminate();
}

C#

/// <summary>
/// 弧を表示するサンプル。
/// </summary>
class GeometryObject2D_ArcShape
{
    public string Description
    {
        get { return ""; }
    }
    public string Title
    {
        get { return ""; }
    }
    public string ClassName
    {
        get { return "GeometryObject2D_ArcShape"; }
    }

    [System.STAThread]
    static void Main(string[] args)
    {
        // Altseedを初期化する。
        asd.Engine.Initialize("GeometryObject2D_ArcShape", 640, 480, new asd.EngineOption());

        // 図形描画クラスのコンストラクタを呼び出す。
        var geometryObj = new asd.GeometryObject2D();

        // 図形描画オブジェクトのインスタンスをエンジンに追加する。
        asd.Engine.AddObject2D(geometryObj);

        // 弧の図形クラスのインスタンスを生成する。
        var arc = new asd.ArcShape();

        // 弧の外径、内径、頂点数、中心位置、開始頂点番号、終了頂点番号を指定する。
        arc.OuterDiameter = 400;
        arc.InnerDiameter = 40;
        arc.NumberOfCorners = 96;
        arc.Position = new asd.Vector2DF(320, 240);
        arc.StartingCorner = 90;
        arc.EndingCorner = 45;

        // 弧を描画する図形として設定する。
        geometryObj.Shape = arc;

        // Altseedを更新する。
        while (asd.Engine.DoEvents())
        {
            // Altseedを更新する。
            asd.Engine.Update();

        }

        // Altseedの終了処理をする。
        asd.Engine.Terminate();
    }
}

Java

/**
 * 弧を表示するサンプル。
*/
class GeometryObject2D_ArcShape 
{
    public java.lang.String getDescription() {
        return "";
    }
    public java.lang.String getTitle() {
        return "";
    }
    public java.lang.String getClassName() {
        return "GeometryObject2D_ArcShape";
    }
    public static void main(String args[])
    {
        // Altseedを初期化する。
        asd.Engine.Initialize("GeometryObject2D_ArcShape", 640, 480, new asd.EngineOption());

        // 図形描画クラスのコンストラクタを呼び出す。
        asd.GeometryObject2D geometryObj = new asd.GeometryObject2D();

        // 図形描画オブジェクトのインスタンスをエンジンに追加する。
        asd.Engine.AddObject2D(geometryObj);

        // 弧の図形クラスのインスタンスを生成する。
        asd.ArcShape arc = new asd.ArcShape();

        // 弧の外径、内径、頂点数、中心位置、開始頂点番号、終了頂点番号を指定する。
        arc.setOuterDiameter(400);
        arc.setInnerDiameter(40);
        arc.setNumberOfCorners(96);
        arc.setPosition(new asd.Vector2DF(320, 240));
        arc.setStartingCorner(90);
        arc.setEndingCorner(45);

        // 弧を描画する図形として設定する。
        geometryObj.setShape(arc);

        // Altseedを更新する。
        while(asd.Engine.DoEvents())
        {
            // Altseedを更新する。
            asd.Engine.Update();

        }


        // Altseedの終了処理をする。
        asd.Engine.Terminate();
    }
}

矩形の描画

SS

C++

#include <Base.h>

/**
@brief  矩形を表示するサンプル。
*/
int main()
{
    // Altseedを初期化する。
    asd::Engine::Initialize(asd::ToAString("GeometryObject2D_RectangleShape").c_str(), 640, 480, asd::EngineOption());

    // 図形描画オブジェクトのインスタンスを生成する。
    auto geometryObj = std::make_shared<asd::GeometryObject2D>();

    // 図形描画オブジェクトのインスタンスをエンジンに追加する。
    asd::Engine::AddObject2D(geometryObj);

    // 矩形の図形クラスのインスタンスを生成する。
    auto rect = std::make_shared<asd::RectangleShape>();

    // 矩形の描画範囲を指定する。
    rect->SetDrawingArea(asd::RectF(10, 210, 300, 200));

    // 矩形を描画する図形として設定する。
    geometryObj->SetShape(rect);

    // Altseedのウインドウが閉じられていないか確認する。
    while (asd::Engine::DoEvents())
    {
        // Altseedを更新する。
        asd::Engine::Update();
    }

    // Altseedを終了する。
    asd::Engine::Terminate();
}

C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

/// <summary>
/// 矩形を表示するサンプル。
/// </summary>
class GeometryObject2D_RectangleShape
{
    public string Description
    {
        get { return ""; }
    }
    public string Title
    {
        get { return ""; }
    }
    public string ClassName
    {
        get { return "GeometryObject2D_RectangleShape"; }
    }

    [System.STAThread]
    static void Main(string[] args)
    {
        // Altseedを初期化する。
        asd.Engine.Initialize("GeometryObject2D_RectangleShape", 640, 480, new asd.EngineOption());

        // 図形描画オブジェクトのインスタンスを生成する。
        var geometryObj = new asd.GeometryObject2D();

        // 図形描画クラスのインスタンスをエンジンに追加する。
        asd.Engine.AddObject2D(geometryObj);

        // 矩形の図形クラスのインスタンスを生成する。
        var rect = new asd.RectangleShape();

        // 矩形の描画範囲を指定する。
        rect.DrawingArea = new asd.RectF(10, 210, 300, 200);

        // 矩形を描画する図形として設定しする。
        geometryObj.Shape = rect;

        // Altseedのウインドウが閉じられていないか確認する。
        while (asd.Engine.DoEvents())
        {
            // Altseedを更新する。
            asd.Engine.Update();

        }

        // Altseedの終了処理をする。
        asd.Engine.Terminate();
    }
}

Java

/**
 * 矩形を表示するサンプル。
*/
class GeometryObject2D_RectangleShape 
{
    public java.lang.String getDescription() {
        return "";
    }
    public java.lang.String getTitle() {
        return "";
    }
    public java.lang.String getClassName() {
        return "GeometryObject2D_RectangleShape";
    }
    public static void main(String args[])
    {
        // Altseedを初期化する。
        asd.Engine.Initialize("GeometryObject2D_RectangleShape", 640, 480, new asd.EngineOption());

        // 図形描画オブジェクトのインスタンスを生成する。
        asd.GeometryObject2D geometryObj = new asd.GeometryObject2D();

        // 図形描画クラスのインスタンスをエンジンに追加する。
        asd.Engine.AddObject2D(geometryObj);

        // 矩形の図形クラスのインスタンスを生成する。
        asd.RectangleShape rect = new asd.RectangleShape();

        // 矩形の描画範囲を指定する。
        rect.setDrawingArea(new asd.RectF(10, 210, 300, 200));

        // 矩形を描画する図形として設定しする。
        geometryObj.setShape(rect);

        // Altseedのウインドウが閉じられていないか確認する。
        while(asd.Engine.DoEvents())
        {
            // Altseedを更新する。
            asd.Engine.Update();

        }


        // Altseedの終了処理をする。
        asd.Engine.Terminate();
    }
}

多角形の描画

SS

C++

#include <Base.h>

/**
@brief  多角形を表示するサンプル。
*/
int main()
{
    // Altseedを初期化する。
    asd::Engine::Initialize(asd::ToAString("GeometryObject2D_PolygonShape").c_str(), 640, 480, asd::EngineOption());

    // 図形描画オブジェクトのインスタンスを生成する。
    auto geometryObj = std::make_shared<asd::GeometryObject2D>();

    // 図形描画オブジェクトのインスタンスをエンジンに追加する。
    asd::Engine::AddObject2D(geometryObj);

        // 多角形の図形クラスのインスタンスを生成する。
    auto polygon = std::make_shared<asd::PolygonShape>();

    // 多角形を構成する頂点を追加していく。(星形になるようにする。)
    for (int i = 0; i < 10; ++i)
    {
        asd::Vector2DF vec = asd::Vector2DF(1, 0);
        vec.SetDegree(i * 36);

        if (i % 2 == 0)
        {
            vec.SetLength(200);
        }
        else
        {
            vec.SetLength(75);
        }

        polygon->AddVertex(vec + asd::Vector2DF(320, 240));
    }

    // 多角形を描画する図形として設定する。
    geometryObj->SetShape(polygon);

    // Altseedのウインドウが閉じられていないか確認する。
    while (asd::Engine::DoEvents())
    {
        // Altseedを更新する。
        asd::Engine::Update();
    }

    // Altseedを終了する。
    asd::Engine::Terminate();
}

C#

/// <summary>
/// 多角形を表示するサンプル。
/// </summary>
class GeometryObject2D_PolygonShape
{
    public string Description
    {
        get { return ""; }
    }
    public string Title
    {
        get { return ""; }
    }
    public string ClassName
    {
        get { return "GeometryObject2D_PolygonShape"; }
    }

    [System.STAThread]
    static void Main(string[] args)
    {
        // Altseedを初期化する。
        asd.Engine.Initialize("GeometryObject2D_PolygonShape", 640, 480, new asd.EngineOption());

        // 図形描画オブジェクトのインスタンスを生成する。
        var geometryObj = new asd.GeometryObject2D();

        // 図形描画オブジェクトのインスタンスをエンジンに追加する。
        asd.Engine.AddObject2D(geometryObj);

        // 多角形の図形クラスのインスタンスを生成する。
        var polygon = new asd.PolygonShape();

        // 多角形を構成する頂点を追加していく。(星形になるようにする。)
        for (int i = 0; i < 10; i++)
        {
            asd.Vector2DF vec = new asd.Vector2DF(1, 0);
            vec.Degree = i * 36;

            if (i % 2 == 0)
            {
                vec.Length = 200;
            }
            else
            {
                vec.Length = 75;
            }

            polygon.AddVertex(vec + new asd.Vector2DF(320, 240));
        }

        // 多角形を描画する図形として設定する。
        geometryObj.Shape = polygon;

        // Altseedのウインドウが閉じられていないか確認する。
        while (asd.Engine.DoEvents())
        {
            // Altseedを更新する。
            asd.Engine.Update();

        }

        // Altseedの終了処理をする。
        asd.Engine.Terminate();
    }
}

Java

/**
 * 多角形を表示するサンプル。
*/
class GeometryObject2D_PolygonShape 
{
    public java.lang.String getDescription() {
        return "";
    }
    public java.lang.String getTitle() {
        return "";
    }
    public java.lang.String getClassName() {
        return "GeometryObject2D_PolygonShape";
    }
    public static void main(String args[])
    {
        // Altseedを初期化する。
        asd.Engine.Initialize("GeometryObject2D_PolygonShape", 640, 480, new asd.EngineOption());

        // 図形描画オブジェクトのインスタンスを生成する。
        asd.GeometryObject2D geometryObj = new asd.GeometryObject2D();

        // 図形描画オブジェクトのインスタンスをエンジンに追加する。
        asd.Engine.AddObject2D(geometryObj);

        // 多角形の図形クラスのインスタンスを生成する。
        asd.PolygonShape polygon = new asd.PolygonShape();

        // 多角形を構成する頂点を追加していく。(星形になるようにする。)
        for(int i = 0; (i < 10); i++)
        {
            asd.Vector2DF vec = new asd.Vector2DF(1, 0);
            vec.setDegree((i * 36));

            if(((i % 2 ) == 0))
            {
                vec.setLength(200);
            }
            else
            {
                vec.setLength(75);
            }

            polygon.AddVertex(asd.Vector2DF.Add(vec, new asd.Vector2DF(320, 240)));
        }

        // 多角形を描画する図形として設定する。
        geometryObj.setShape(polygon);

        // Altseedのウインドウが閉じられていないか確認する。
        while(asd.Engine.DoEvents())
        {
            // Altseedを更新する。
            asd.Engine.Update();

        }


        // Altseedの終了処理をする。
        asd.Engine.Terminate();
    }
}

テクスチャを合成した多角形の描画

SS

C++

#include <Base.h>

/**
@brief  多角形をテクスチャを合成した上で表示するサンプル。
*/
int main()
{
    // Altseedを初期化する。
    asd::Engine::Initialize(asd::ToAString("GeometryObject2D_PolygonShape_Textured").c_str(), 640, 480, asd::EngineOption());

    // テクスチャとして図形に合成する画像を読み込む。
    auto texture = asd::Engine::GetGraphics()->CreateTexture2D(asd::ToAString("Data/Texture/Sample1.png").c_str());

    // 図形描画オブジェクトのインスタンスを生成する。
    auto geometryObj = std::make_shared<asd::GeometryObject2D>();

    // 図形描画オブジェクトのインスタンスをエンジンに追加する。
    asd::Engine::AddObject2D(geometryObj);

    // 多角形の図形クラスのインスタンスを生成する。
    auto polygon = std::make_shared<asd::PolygonShape>();

    // 多角形を構成する頂点を追加していく。(星形になるようにする。)
    for (int i = 0; i < 10; ++i)
    {
        asd::Vector2DF vec = asd::Vector2DF(1, 0);
        vec.SetDegree(i * 36);

        if (i % 2 == 0)
        {
            vec.SetLength(200);
        }
        else
        {
            vec.SetLength(75);
        }
        polygon->AddVertex(vec + asd::Vector2DF(320, 240));

    }

    // 多角形を描画する図形として設定し、合成するテクスチャも設定する。
    geometryObj->SetShape(polygon);
    geometryObj->SetTexture(texture);

    // Altseedのウインドウが閉じられていないか確認する。
    while (asd::Engine::DoEvents())
    {
        // Altseedを更新する。
        asd::Engine::Update();
    }

    // Altseedを終了する。
    asd::Engine::Terminate();
}

C#

/// <summary>
/// 多角形をテクスチャを合成した上で表示するサンプル。
/// </summary>
class GeometryObject2D_PolygonShape_Textured
{
    public string Description
    {
        get { return ""; }
    }
    public string Title
    {
        get { return ""; }
    }
    public string ClassName
    {
        get { return "GeometryObject2D_PolygonShape_Textured"; }
    }

    [System.STAThread]
    static void Main(string[] args)
    {
        // Altseedを初期化する。
        asd.Engine.Initialize("GeometryObject2D_PolygonShape_Textured", 640, 480, new asd.EngineOption());

        // テクスチャとして図形に合成する画像を読み込む。
        var texture = asd.Engine.Graphics.CreateTexture2D("Data/Texture/Sample1.png");

        // 図形描画オブジェクトのインスタンスを生成する。
        var geometryObj = new asd.GeometryObject2D();

        // 図形描画オブジェクトのインスタンスをエンジンに追加する。
        asd.Engine.AddObject2D(geometryObj);

        // 多角形の図形クラスのインスタンスを生成する。
        var polygon = new asd.PolygonShape();

        // 多角形を構成する頂点を追加していく。(星形になるようにする。)
        for (int i = 0; i < 10; i++)
        {
            asd.Vector2DF vec = new asd.Vector2DF(1, 0);
            vec.Degree = i * 36;

            if(i % 2 ==0)
            {
                vec.Length = 200;
            }
            else
            {
                vec.Length = 75;
            }

            polygon.AddVertex(vec + new asd.Vector2DF(320, 240));

        }

        // 多角形を描画する図形として設定し、合成するテクスチャも設定する。
        geometryObj.Shape = polygon;
        geometryObj.Texture = texture;

        // Altseedのウインドウが閉じられていないか確認する。
        while (asd.Engine.DoEvents())
        {
            // Altseedを更新する。
            asd.Engine.Update();

        }

        // Altseedを終了する。
        asd.Engine.Terminate();
    }
}

Java

/**
 * 多角形をテクスチャを合成した上で表示するサンプル。
*/
class GeometryObject2D_PolygonShape_Textured 
{
    public java.lang.String getDescription() {
        return "";
    }
    public java.lang.String getTitle() {
        return "";
    }
    public java.lang.String getClassName() {
        return "GeometryObject2D_PolygonShape_Textured";
    }
    public static void main(String args[])
    {
        // Altseedを初期化する。
        asd.Engine.Initialize("GeometryObject2D_PolygonShape_Textured", 640, 480, new asd.EngineOption());

        // テクスチャとして図形に合成する画像を読み込む。
        asd.Texture2D texture = asd.Engine.getGraphics().CreateTexture2D("Data/Texture/Sample1.png");

        // 図形描画オブジェクトのインスタンスを生成する。
        asd.GeometryObject2D geometryObj = new asd.GeometryObject2D();

        // 図形描画オブジェクトのインスタンスをエンジンに追加する。
        asd.Engine.AddObject2D(geometryObj);

        // 多角形の図形クラスのインスタンスを生成する。
        asd.PolygonShape polygon = new asd.PolygonShape();

        // 多角形を構成する頂点を追加していく。(星形になるようにする。)
        for(int i = 0; (i < 10); i++)
        {
            asd.Vector2DF vec = new asd.Vector2DF(1, 0);
            vec.setDegree((i * 36));

            if(((i % 2 ) == 0))
            {
                vec.setLength(200);
            }
            else
            {
                vec.setLength(75);
            }

            polygon.AddVertex(asd.Vector2DF.Add(vec, new asd.Vector2DF(320, 240)));
        }

        // 多角形を描画する図形として設定し、合成するテクスチャも設定する。
        geometryObj.setShape(polygon);
        geometryObj.setTexture(texture);

        // Altseedのウインドウが閉じられていないか確認する。
        while(asd.Engine.DoEvents())
        {
            // Altseedを更新する。
            asd.Engine.Update();

        }


        // Altseedを終了する。
        asd.Engine.Terminate();
    }
}