Skip to content

dtl::XX::YY::setRange (形状描画)

Kasugaccho edited this page Aug 13, 2019 · 3 revisions

Select Language 🌐

English 🇬🇧 / 日本語 🇯🇵


// (1)
constexpr auto setRange(const std::size_t point_x_, const std::size_t point_y_, const std::size_t length_) noexcept;

// (2)
constexpr auto setRange(const std::size_t point_x_, const std::size_t point_y_, const std::size_t width_, const std::size_t height_) noexcept;

// (3)
constexpr auto setRange(const dtl::base::MatrixRange& matrix_range_) noexcept;

概要

描画範囲(X,Y,W,H)を設定する。

戻り値

戻り値の型は全てにおいて 当クラスの参照値 である。

例外

投げない

計算量

定数時間

#include <DTL.hpp>
#include <iostream>
#include <cstddef>
#include <cstdint>

int main() {

	using shape_t = std::uint_fast8_t;
	constexpr std::size_t width{ 16 };
	constexpr std::size_t height{ 8 };

	shape_t matrix[height * width]{};

	dtl::shape::Border<shape_t> border(1);

	border.setRange(2, 1, 8, 5).drawArray(matrix, width, height);

	std::cout << "PointX:" << border.getPointX() << '\n';
	std::cout << "PointY:" << border.getPointY() << '\n';
	std::cout << "Width:" << border.getWidth() << '\n';
	std::cout << "Height:" << border.getHeight() << '\n';

	dtl::console::OutputNumber<shape_t>(",").drawArray(matrix, width, height);
	dtl::console::OutputString<shape_t>("//", "##").drawArray(matrix, width, height);

	return 0;
}

出力

PointX:2
PointY:1
Width:8
Height:5
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,
0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,
0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,
0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,
0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
////////////////////////////////
////################////////////
////##////////////##////////////
////##////////////##////////////
////##////////////##////////////
////################////////////
////////////////////////////////
////////////////////////////////
Clone this wiki locally