質問するログイン新規登録

回答編集履歴

2

追記

2021/04/20 01:03

投稿

fana
fana

スコア12285

answer CHANGED
@@ -21,4 +21,42 @@
21
21
 
22
22
  といった形のデータを考え,
23
23
  操作によって新しい線等を描画することが決まるごとに,この形のデータを(配列なりに)蓄えていくならば,
24
- 蓄えたデータの先頭側のデータから順に用いて描画を行っていけば,描画順序が操作順と一致する.
24
+ 蓄えたデータの先頭側のデータから順に用いて描画を行っていけば,描画順序が操作順と一致する.
25
+
26
+ ---
27
+
28
+ 例えば何かこんなデータ型があって…
29
+
30
+ ```C
31
+ //描画すべき1本の線分の情報
32
+ struct LineSeg
33
+ {
34
+ int x0,y0, x1,y1; //2端点(x0,y0),(x1,y1)
35
+ Color DrawColor; //描画色(具体的な型はわからんが)
36
+ };
37
+
38
+ //線を描画する
39
+ void DrawLine( const LineSeg *pLG )
40
+ {
41
+ DrawLine( pLG->x0,pLG->y0, pLG->x1,pLG->y1, pLG->DrawColor );
42
+ }
43
+ ```
44
+
45
+ こんな形で複数の線分の情報を保持しているとしたら…
46
+
47
+ ```C
48
+ //データ.
49
+ //(先頭から nLineSegs 個が現在有効なデータ)
50
+ LineSeg LineSegs[100];
51
+ int nLineSegs = 0;
52
+ ```
53
+
54
+ こうやって,配列 LineSegs[] の先頭側から順に用いて描画する.
55
+ 先に描画された線分は,後から描画される線分によって一部を上書きされ得る(よね,っていうだけの話)
56
+
57
+ ```C
58
+ for( i=0; i<nLineSegs; ++i )
59
+ {
60
+ DrawLine( LineSegs+i );
61
+ }
62
+ ```

1

文章修正

2021/04/20 01:03

投稿

fana
fana

スコア12285

answer CHANGED
@@ -20,5 +20,5 @@
20
20
  * その他必要な情報(線の太さとか)
21
21
 
22
22
  といった形のデータを考え,
23
- 操作によって新しい線等を描画することが決まるごとに,この形のデータ(配列なりに)蓄えていくならば,
23
+ 操作によって新しい線等を描画することが決まるごとに,この形のデータ(配列なりに)蓄えていくならば,
24
- 配列の先頭側のデータから順に用いて描画を行っていけば,描画順序が操作順と一致する.
24
+ 蓄えたデータの先頭側のデータから順に用いて描画を行っていけば,描画順序が操作順と一致する.