回答編集履歴

2

追記

2021/04/20 01:03

投稿

fana
fana

スコア11658

test CHANGED
@@ -45,3 +45,79 @@
45
45
  操作によって新しい線等を描画することが決まるごとに,この形のデータを(配列なりに)蓄えていくならば,
46
46
 
47
47
  蓄えたデータの先頭側のデータから順に用いて描画を行っていけば,描画順序が操作順と一致する.
48
+
49
+
50
+
51
+ ---
52
+
53
+
54
+
55
+ 例えば何かこんなデータ型があって…
56
+
57
+
58
+
59
+ ```C
60
+
61
+ //描画すべき1本の線分の情報
62
+
63
+ struct LineSeg
64
+
65
+ {
66
+
67
+ int x0,y0, x1,y1; //2端点(x0,y0),(x1,y1)
68
+
69
+ Color DrawColor; //描画色(具体的な型はわからんが)
70
+
71
+ };
72
+
73
+
74
+
75
+ //線を描画する
76
+
77
+ void DrawLine( const LineSeg *pLG )
78
+
79
+ {
80
+
81
+ DrawLine( pLG->x0,pLG->y0, pLG->x1,pLG->y1, pLG->DrawColor );
82
+
83
+ }
84
+
85
+ ```
86
+
87
+
88
+
89
+ こんな形で複数の線分の情報を保持しているとしたら…
90
+
91
+
92
+
93
+ ```C
94
+
95
+ //データ.
96
+
97
+ //(先頭から nLineSegs 個が現在有効なデータ)
98
+
99
+ LineSeg LineSegs[100];
100
+
101
+ int nLineSegs = 0;
102
+
103
+ ```
104
+
105
+
106
+
107
+ こうやって,配列 LineSegs[] の先頭側から順に用いて描画する.
108
+
109
+ 先に描画された線分は,後から描画される線分によって一部を上書きされ得る(よね,っていうだけの話)
110
+
111
+
112
+
113
+ ```C
114
+
115
+ for( i=0; i<nLineSegs; ++i )
116
+
117
+ {
118
+
119
+ DrawLine( LineSegs+i );
120
+
121
+ }
122
+
123
+ ```

1

文章修正

2021/04/20 01:03

投稿

fana
fana

スコア11658

test CHANGED
@@ -42,6 +42,6 @@
42
42
 
43
43
  といった形のデータを考え,
44
44
 
45
- 操作によって新しい線等を描画することが決まるごとに,この形のデータ(配列なりに)蓄えていくならば,
45
+ 操作によって新しい線等を描画することが決まるごとに,この形のデータ(配列なりに)蓄えていくならば,
46
46
 
47
- 配列の先頭側のデータから順に用いて描画を行っていけば,描画順序が操作順と一致する.
47
+ 蓄えたデータの先頭側のデータから順に用いて描画を行っていけば,描画順序が操作順と一致する.