| ご無沙汰しています、龍神です. Lineコマンドを使用して、図形・・・魔方陣を描画しようと思いましたが、どうも処理の負担が重いのか、SRCと同時に何か別のアプリケーションを起動している際や、別のパソコンで実行した際に、描画速度がまちまちになって困っています.
いささか長いですが、ソースを以下に掲載します. 良い案がございましたら、なにとぞお知恵をお貸しください. よろしくお願いいたします.
魔方陣描画: set r 100 Set Pai 3.141592 Set 色 RGB(230,230,230)
Drawwidth 2
Line (240 - r) (240 - r) (240 + r) (240 + r) BF RGB(0,0,0) refresh
線が延びる 240 (240 - r) (240 - r * Cos(3.141592 * 30 / 180)) (240 + r * sin(3.141592 * 30 / 180)) 色 線が延びる (240 - r * Cos(3.141592 * 30 / 180)) (240 + r * sin(3.141592 * 30 / 180)) (240 + r * Cos(3.141592 * 30 / 180)) (240 + r * sin(3.141592 * 30 / 180)) 色 線が延びる (240 + r * Cos(3.141592 * 30 / 180)) (240 + r * sin(3.141592 * 30 / 180)) 240 (240 - r) 色 Line (240 - r) (240 - r) (240 + r) (240 + r) BF RGB(0,0,0) refresh for j = 0 to 60 Color RgB(0,0,0) Polygon (240 + r * Cos(3.141592 * (90 + (j - 1)) / 180)) (240 - r * sin(3.141592 * (90 + (j - 1)) / 180)) (240 - r * Cos(3.141592 * (30 + (j - 1)) / 180)) (240 + r * sin(3.141592 * (30 + (j - 1)) / 180)) (240 + r * Cos(3.141592 * (30 - (j - 1)) / 180)) (240 + r * sin(3.141592 * (30 - (j - 1)) / 180)) Color 色 Polygon (240 + r * Cos(3.141592 * (90 + j) / 180)) (240 - r * sin(3.141592 * (90 + j) / 180)) (240 - r * Cos(3.141592 * (30 + j) / 180)) (240 + r * sin(3.141592 * (30 + j) / 180)) (240 + r * Cos(3.141592 * (30 - j) / 180)) (240 + r * sin(3.141592 * (30 - j) / 180)) refresh next 線が延びる 240 (240 - r) (240 - r * Cos(3.141592 * 30 / 180)) (240 + r * sin(3.141592 * 30 / 180)) 色 線が延びる (240 - r * Cos(3.141592 * 30 / 180)) (240 + r * sin(3.141592 * 30 / 180)) (240 + r * Cos(3.141592 * 30 / 180)) (240 + r * sin(3.141592 * 30 / 180)) 色 線が延びる (240 + r * Cos(3.141592 * 30 / 180)) (240 + r * sin(3.141592 * 30 / 180)) 240 (240 - r) 色 Polygon 240 (240 - r) (240 - r * Cos(3.141592 * 30 / 180)) (240 + r * sin(3.141592 * 30 / 180)) (240 + r * Cos(3.141592 * 30 / 180)) (240 + r * sin(3.141592 * 30 / 180)) refresh
For j = 91 to 360 arc 240 240 r 90 j arc 240 240 (r * 1.1) 0 j refresh next For j = 1 to 90 arc 240 240 r 0 j arc 240 240 (r * 1.1) 0 j refresh next
return
線が延びる: If Args(5) != "" then Color Args(5) EndIF Set 分割数 100 For i = 1 to 分割数 Line Args(1) Args(2) (Args(1) + (Args(3) - Args(1)) * i / 分割数) (Args(2) + (Args(4) - Args(2)) * i / 分割数) refresh Next Return
|