ZX-Forum №3 1995 г.

Читатель-читателю - алгоритм построения настоящей окружности и круга.


Построение окружности и круга

© Михаил Усачев, г. Шахты, 1995.

Хочу предложить идейку, которую "подсунул" мне мой друг: алгоритм построения круга, при этом получается настоящий круг, а не многоугольник.

Алгоритм: весь круг разбиваем на 1 8 секторов (см. рисунок).

Y

При движении от начала координат по оси Х вправо, с приближением к абсциссе точки В, ордината все чаще уменьшается на единицу, но не больше, чем на единицу. Необходимо лишь узнать, на каком шаге уменьшить ординату на единицу, чтобы построить сектор. Результаты вычислений для первого сектора можно использовать для построения остальных секторов.

Я реализовал этот алгоритм в конкретной программе, результат работы которой впечатляет. Последовательность кругов с радиусами от 40 до 1 выстраивается примерно за полсекунды.

Но так как любую программу можно улучшить (ускорить), то мое предложение такое: попытайтесь самостоятельно реализовать этот алгоритм. Свой же вариант я не привожу, чтобы не " загонять" программистов в его рамки.

Процедура построения окружности и круга

© Герасим Троеглазов, с. Гайтер (Хабаровский край), 1995.

Существует несколько методов рисования окружности, но для программ, использующих векторную графику, тригонометрический метод отпадает - очень медленный. Есть ещё уравнение окружности, его мы и рассмотрим.

Наберём программу: 9000 LET x=128: LET y=88: LET r=40 9010 FOR a=0 TO r 9020 LET x0=SQR (r*r-a*a) 9030 PLOT x-x0,y+a:PLOT x+x0,y+a 9040 PLOT x-x0,y-a:PLOT x+x0,y-a 9050 NEXT a

На скорость пока не будем обращать внимания (БЕЙСИК - ведь), а посмотрим на верх и низ окружности: вид портят расстояния между точками. Обойдем эту проблему так: разобьём окружность

на восемь секторов, каждый из которых отличается от других только положением на окружности.

Рассчитаем один, и по этим же данным построим остальные:

9000 LET x=128: LET y=88: LET r=40

9010 FOR a=0 TO r*COS (PI/4)

9020 LET x0=SQR (r*r-a*a)

9030 PLOT x-x0,y+a:PLOT x+x0,y+a

9035 PLOT x-a,y+x0:PLOT x+a,y+x0

9040 PLOT x-x0,y-a:PLOT x+x0,y-a

9045 PLOT x-a,y-x0:PLOT x+a,y-x0

9050 NEXT a

С окружностью разобрались, возьмёмся за круг. Это дело куда проще предыдущего: 9000 LET x=128: LET y=88: LET r=40 9010 FOR a=0 TO r 9020 LET x0=SQR (r*r-a*a) 9030 PLOT x-x0,y+a: DRAW x0*2,0 9040 PLOT x-x0,y-a: DRAW x0*2,0 9050 NEXT a

Теперь примемся за АССЕМБЛЕР. Здесь надо решить две математические проблемы: квадратный корень и возведение в квадрат. Если использовать встроенный калькулятор, то скорость построения будет мало отличаться от Бейсика.

Одним из возможных решений является таблица квадратов чисел от нуля до максимального радиуса окружности. Если максимальный радиус принять за 127 (окружность большего размера на экране не поместится), на каждое число по два байта, итого: 128*2=256 байт. Не так уж и много. Следующая программа заполнит эту таблицу: 9000 LET adr=49700 9010 FOR a=0 TO 127 9020 LET n=a*a

9030 LET n1=INT (n/256): LET n2=n-n1*256 9040 POKE adr,n2: POKE adr+1,n1 9050 LET adr=adr+2 9060 NEXT a

9070 SAVE "data" CODE 4 9700,256

Перейдем к программе на АССЕМБЛЕРЕ. Она расположена после таблицы, с адреса 50000. Точками входа являются: 50000 - рисование окружности и 50370 - рисование круга. Программа рисования окружности аналогична БЕЙСИК-программе, только части линии, выходящей за пределы экрана не отображаются. Круг же имеет некоторые отличия: рисование линий идет через любой заданный шаг по горизонтали, про шаг=0, черчение идет линия к линии. Кроме того, линия чертится не по точкам, а по байтам, что во много раз увеличивает скорость программы. А байты для заполнения берутся из шаблонов UDG-графики, поэтому круг получается сразу же заполненный графическим узором.

Переменные, при помощи которых происходит перенос данных в программу:

23297 (#5В01) - координата Х окружности или круга (0.. .255).

23298 (#5В02) - координата Y окружности или круга (0.175).

23299 (#5В03) - радиус окружности или круга (0.127).

23301 (#5В05) - определяет символ UDG-графики, при этом 0 соответствует "А", 1 - "В" и т.д.

23302 (#5В06) - шаг линий по горизонтали при рисовании круга (0. радиус круга).

23303 (#5В07) - флаг наложения (0 - ИЛИ; 1 - ИСКЛЮЧАЮЩЕЕ ИЛИ).

Листинг программы.

1 ORG 50000

2 DATA EQU 4 9700

3 KOORDX

EQU

#5B01

4 KOORDY

EQU

#5B02

5 RADIUS

EQU

#5B03

6 SYSTEM

EQU

#5B04

7 SYMBOL

EQU

#5B05

8 STEP

EQU

#5B0 6

9 FLAG

EQU

#5B07

10

ENT

$

11

LD

A,(RADIUS

12

LD

(LC480),A

13

CALL

LC4B3

14

NOP

15

NOP

16

NOP

17

NOP

18

LD

B, A

19 LC35E

PUSH

BC

20

LD

A,(LC480)

21

LD

L, A

22

LD

H, #00

23

CALL

LC4 6A

24

EX

DE, HL

25

LD

L, B

26

LD

H, #00

27

CALL

LC4 6A

28

EX

DE, HL

29

AND

A

30

SBC

HL, DE

31

CALL

LC43A

32

DEC

L

33

DEC

L

34

LD

A, L

35

LD

(LC47F) ,A

36

LD

B, A

37

LD

A,(KOORDX

38

SCF

39

SUB

B

40

JR

C, LC390

41

LD

E, A

42

POP

BC

43

PUSH

BC

44

LD

A,(KOORDY

45

ADD

A, B

46

LD

C, E

47

LD

B, A

48

CALL

LC481

49 LC390

SCF

50

LD

A, (LC47F)

51

LD

B, A

52

LD

A,(KOORDX

53

ADD

A, B

54

JR

C,LC3A7

55

LD

E, A

56

POP

BC

57

PUSH

BC

58

LD

A, (KOORDY)

59

ADD

A, B

60

LD

C, E

61

LD

B, A

62

CALL

LC481

63 LC3A7

SCF

64

LD

A, (LC47F)

65

LD

B, A

66

LD

A,(KOORDX)

67

SUB

B

68

JR

C,LC3BE

69

LD

E, A

70

POP

BC

71

PUSH

BC

72

LD

A,(KOORDY)

73

SUB

B

74

LD

B, A

75

LD

C, E

76

CALL

LC481

77 LC3BE

SCF

78

LD

A, (LC47F)

79

LD

B, A

80

LD

A,(KOORDX)

81

ADD

A, B

82

JR

C,LC3D5

83

LD

E, A

84

POP

BC

85

PUSH

BC

86

LD

A,(KOORDY)

87

SUB

B

88

LD

B, A

89

LD

C, E

90

CALL

LC481

91 LC3D5

SCF

92

POP

BC

93

PUSH

BC

94

LD

A,(KOORDX)

95

SUB

B

96

JR

C,LC3EC

97

LD

E, A

98

LD

A, (LC47F)

99

LD

B, A

100

LD

A, (KOORDY)

101

ADD

A, B

102

LD

B, A

103

LD

C, E

104

CALL

LC481

105

LC3EC

SCF

106

POP

BC

107

PUSH

BC

108

LD

A,(KOORDX)

109

SUB

B

110

JR

C,LC403

111

LD

E, A

112

LD

A, (LC47F)

113

LD

B, A

114

LD

A, (KOORDY)

115

SUB

B

116

LD

B, A

117

LD

C, E

118

CALL

LC481

119

LC403

SCF

120

POP

BC

121

PUSH

BC

122

LD

A,(KOORDX)

123

ADD

A, B

124

LD

E, A

125

JR

C,LC41A

126

LD

A, (LC47F)

127

LD

B, A

128

LD

A, (KOORDY)

129

ADD

A, B

130

LD

B, A

131

LD

C, E

132

CALL

LC481

133

LC41A

SCF

134

POP

BC

135

PUSH

BC

136

LD

A,(KOORDX)

137

ADD

A, B

138

LD

E, A

139

JR

C,LC431

140

LD

A, (LC47F)

141

LD

B, A

142

LD

A, (KOORDY)

143

SUB

B

144

LD

B, A

145

LD

C, E

146

CALL

LC481

147

LC4 31

POP

BC

148

DEC

B

149

LD

A, B

150

CP

#FF

151

JP

NZ,LC35E

152

RET

153

LC4 3A

PUSH

BC

154

PUSH

DE

155

PUSH

IX

156

PUSH

AF

157

LD

IX,DATA

158

LD

B, #80

159

LD

C, #00

160

LC4 4 7

LD

E,(IX+0)

161

LD

D,(IX+1)

162

INC

IX

163

INC

IX

164

LD

A, B

165

CP

#00

166

JR

Z,LC45F

167

DEC

B

168

PUSH

HL

169

SCF

170

SBC

HL, DE

171

POP

HL

172

INC

C

173

JR

NC,LC447

174

LC4 5F

LD

A,C

175

NOP

176

LD

L, A

177

LD

H, #00

178

POP

AF

179

POP

IX

180

POP

DE

181

POP

BC

182

RET

183

LC4 6A

PUSH

IX

184

PUSH

DE

185

ADD

HL, HL

186

EX

DE, HL

187

LD

IX,DATA

188

ADD

IX, DE

189

LD

L, (IX+0)

190

LD

H, (IX+1)

191

POP

DE

192

POP

IX

193

RET

194

LC47F

DEFB

#47

195

LC4 8 0

DEFB

#48

196

LC4 81

LD

D,C

197

LD

E, B

198

LD

A, B

199

CP

#B0

200

RET

NC

201

LD

A, #AF

202

SUB

E

203

LD

E, A

204

AND

A

205

RRA

206

SCF

207

RRA

208

AND

A

209

RRA

210

XOR

E

211

AND

#F8

212

XOR

E

213

LD

H, A

214

LD

A, D

215

RLCA

216

RLCA

217

RLCA

218

XOR

E

219

AND

#C7

220

XOR

E

221

RLCA

222

RLCA

223

LD

L, A

224

LD

A, D

225

AND

#07

226

LD

B, A

227

INC

B

228

LD

A, #FE

229

LC4A8

RRCA

230

DJNZ

LC4A8

231

LD

B, #FF

232

XOR

B

233

LD

B, A

234

LD

A,(HL)

235

OR

B

236

LD

(HL),A

237

RET

238

LC4B3

CALL

#2D2 8

239

RST

#28

240

DEFB

#A2,#A3,#04

241

DEFB

#1F,#04,#38

242

CALL

#2DD5

243

LD

B, A

244

245

246

247

248

249

250

251

252

; * Точ]

LC4C9

RET ка вход

CALL

LD

LD

PUSH

LD

LD

CALL

[а для круга *

LC5DF

A,(RADIUS)

B, A BC L, B H, #00 LC4 6A

253

EX

DE, HL

254

LD

A,(RADIUS)

255

LD

L, A

256

LD

H, #00

257

CALL

LC4 6A

258

AND

A

259

SBC

HL, DE

260

CALL

LC43A

261

LD

A, L

262

LD

(LC52E),A

263

LD

A, (LC52E)

264

LD

B, A

265

LD

A,(KOORDX)

266

SUB

B

267

CALL

C,LC51C

268

LD

E, A

269

LD

(LC52C),A

270

POP

BC

271

PUSH

BC

272

LD

A, (KOORDY)

273

SUB

B

274

LD

(LC52D),A

275

LD

C, E

276

LD

B, A

277

CALL

LC531

278

POP

BC

279

PUSH

BC

280

LD

A, (KOORDY)

281

ADD

A, B

282

LD

B, A

283

LD

A,(LC52C)

284

LD

C, A

285

INC

B

286

CALL

LC531

287

POP

BC

288

LD

A,(STEP)

289

LD

C, A

290

LD

A, B

291

INC

C

292

SUB

C

293

LD

B, A

294

JR

NC,LC4C9

295

RET

296 LC51C

NEG

297

LD

D, A

298

LD

A,(LC52E)

299

ADD

A, A

300

SUB

D

301

SRL

A

302

LD

(LC52E),A

303

LD

A, #00

304

RET

305

LC52C

DEFB

#64

306

LC52D

DEFB

#55

307

LC52E

DEFB

#1C

308

LC52F

DEFB

#04,#00

309

LC531

LD

A,B

310

CP

#AF

311

RET

NC

312

LD

D, C

313

LD

E, B

314

LD

A, #AF

315

SUB

E

316

LD

E, A

317

AND

A

318

RRA

319

SCF

320

RRA

321

AND

A

322

RRA

323

XOR

E

324

AND

#F8

325

XOR

E

326

LD

H, A

327

LD

A, D

328

RLCA

329

RLCA

330

RLCA

331

XOR

E

332

AND

#C7

333

XOR

E

334

RLCA

335

RLCA

336

LD

L, A

337

PUSH

HL

338

LD

BC,#57 FF

339

AND

A

340

SBC

HL, BC

341

JR

C,LC55C

342

POP

HL

343

RET

344

LC55C

POP

HL

345

LD

A, H

346

AND

#07

347

LD

IX,(#5C7B)

348

LD

B, #00

349

LD

C, A

350

ADD

IX, BC

351

LD

A, (SYMBOL)

352

ADD

A, A

353

ADD

A, A

354

ADD

A, A

355

LD

C, A

356

ADD

IX, BC

357

LD

A, (IX+0)

358

LD

(SYSTEM),A

359

LD

A, D

360

AND

#07

361

LD

B, A

362

I NC

B

363

LD

(LC52F) ,A

364

LD

A, (LC52E)

365

ADD

A, A

366

LD

D, A

367

LD

A, (SYSTEM)

368

LD

E, #FE

369

LC58A

RRC

E

370

AND

E

371

DJNZ

LC58A

372

LC58F

XOR

(HL)

373

LD

(HL),A

374

LD

A, (LC52F)

375

LD

B, A

376

LD

A, #08

377

SUB

B

378

LD

B, A

379

LD

A, D

380

SUB

B

381

LD

D, A

382

JR

C, LC5CE

383

I NC

HL

384

LD

A, L

385

AND

#1F

386

SUB

#01

387

RET

C

388

LC5A5

LD

A,D

389

SUB

#08

390

JR

C,LC5B9

391

LD

D, A

392

LD

A, (SYSTEM)

393

LC5AE

XOR

(HL)

394

LD

(HL),A

395

I NC

HL

396

LD

A, L

397

AND

#1F

398

SUB

#01

399

RET

C

400

JR

LC5A5

401

LC5B9

LD

A,D

402

AND

#07

403

LD

B, A

404

LD

A, #08

405

SUB

B

406

LD

B, A

407

LD

E, #FE

408

LD

A, (SYSTEM)

409

LC5C6

AND

E

410

RLC

E

411

DJNZ

LC5C6

412

LC5CB

XOR

(HL)

413

LD

(HL),A

414

RET

415

LC5CE

LD

A,D

416

ADD

A, #08

417

LD

D, A

418

AND

#07

419

LD

B, A

420

LD

E, #FE

421

LD

A,(HL)

422

LC5D8

AND

E

423

RLC

E

424

DJNZ

LC5D8

425

LD

(HL),A

426

RET

427

LC5DF

LD

A,(FLAG)

428

CP

#00

429

JR

Z, LC5EB

430

CP

#01

431

JR

Z,LC5F7

432

RET

433

LC5EB

LD

A,#B6

434

LC5ED

LD

(LC58F),A

435

LD

(LC5AE),A

436

LD

(LC5CB),A

437

RET

438

LC5F7

LD

A,#AE

439

JR

LC5ED

Некоторые комментарии к программе.

Строка 11 - радиус заносится в A и переход на расчет формулы A=R*COS(PI/4). Строка 18 - в B счётчик точек сектора окружности.

Строка 20 - начало расчета формулы уравнения окружности B=SQR(R*R-A*A). Строка 40 - PLOT X0-B,Y0+A. Строка 54 - PLOT X0+B,Y0+A. Строка 68 - PLOT X0-B,Y0-A. Строка 82 - PLOT X0+B,Y0-A. Строка 96 - PLOT X0-A,Y0+B. Строка 110- PLOT X0-A,Y0-B. Строка 125 - PLOT X0+A,Y0+B. Строка 139- PLOT X0+A,Y0-B. Строка 147 - переход к следующей точке сектора, если B>0, иначе - выход. Строка 153 - расчёт квадратного корня из Н. Вычисление идёт по таблице квадратов чисел, расположенной по адресу 49700 и заполненную сформированной выше последовательностью (файл "data" CODE). Результат в регистре Н.

Строка 183 - возведение числа в Н в квадрат, также по таблице. Результат в Н.

Строка 196 - печать точки на экране. Программа взята из книги "Элементарная графика". Строка 239 - A=R*COS(PI/4).

Строка 246 - точка входа для рисования круга; следует переход в подпрограмму установки режима наложения.

Строка 247 - расчёт уравнения окружности. Строка 263 - вычисление левого края отрезка. Строка 272 - отрезок внизу Y=Y0+A. Строка 280 - отрезок вверху Y=Y0+A. Строка 288 - А=А+шаг. Строка 294 - переход к следующей линии.

Строка 296 - расчёт длины отрезка при выходе за левый край отрезка.

Строка 305 - рабочие переменные.

Строка 309 - черчение отрезка.

Строка 312 - расчёт адреса в экране.

Строка 338 - расчёт адреса шаблона.

Строка 358 - зануление крайних левых битов в байте, взятом из шаблона в левом конце отрезка.

Строка 374 - средняя часть отрезка; байты устанавливаются полностью. Строка 392 - правый байт отрезка; зануление правых битов.

Строка 415 - Если длина отрезка меньше 8 и он находится в одном байте экрана, то происходит зануление справа зануленного слева байта.

Строка 427 - Установка режима наложения (ИЛИ-ИСКЛЮЧАЮШЕЕ ИЛИ).

кодов -

683 байта:

C350

3A

03

5B

32

80

C4

CD

B3

A1

C358

C4

00

00

00

00

47

C5

3A

25

C360

80

C4

6F

26

00

CD

6A

C4

F7

C368

EB

68

26

00

CD

6A

C4

EB

8A

C370

A7

ED

52

CD

3A

C4

2D

2D

3E

C378

7D

32

7F

C4

47

3A

01

5B

0A

C380

37

90

38

0C

5F

C1

C5

3A

6D

C388

02

5B

80

4B

47

CD

81

C4

CC

C390

37

3A

7F

C4

47

3A

01

5B

E4

C398

80

38

0C

5F

C1

C5

3A

02

40

C3A0

5B

80

4B

47

CD

81

C4

37

19

C3A8

3A

7F

C4

47

3A

01

5B

90

55

C3B0

38

0C

5F

C1

C5

3A

02

5B

33

C3B8

90

47

4B

CD

81

C4

37

3A

20

C3C0

7 F

C4

47

3A

01

5B

80

38

5B

C3C8

0C

5F

C1

C5

3A

02

5B

90

A3

C3D0

47

4B

CD

81

C4

37

C1

C5

F4

C3D8

3A

01

5B

90

38

0E

5F

3A

A0

C3E0

7 F

C4

47

3A

02

5B

80

47

8B

C3E8

4B

CD

81

C4

37

C1

C5

3A

FF

C3F0

01

5B

90

38

0E

5F

3A

7F

FD

C3F8

C4

47

3A

02

5B

90

47

4B

7 F

C400

CD

81

C4

37

C1

C5

3A

01

CE

C408

5B

80

5F

38

0D

3A

7F

C4

C8

C410

47

3A

02

5B

80

47

4B

CD

91

C418

81

C4

37

C1

C5

3A

01

5B

74

C420

80

5F

38

0D

3A

7F

C4

47

CC

C428

3A

02

5B

90

47

4B

CD

81

F3

C430

C4

C1

05

78

FE

FF

C2

5E

13

C438

C3

C9

C5

D5

DD

E5

F5

DD

B6

C440

21

24

C2

06

80

0E

00

DD

7C

C448

5E

00

DD

56

01

DD

23

DD

7B

C450

23

78

FE

00

28

09

05

E5

C8

C458

37

ED

52

E1

0C

30

E8

79

10

C460

00

6F

26

00

F1

DD

E1

D1

39

C468

C1

C9

DD

E5

D5

29

EB

DD

3E

C470

21

24

C2

DD

19

DD

6E

00

7C

C478

DD

66

01

D1

DD

E1

C9

47

1F

C480

48

51

58

78

FE

B0

D0

3E

69

C488

AF

93

5F

A7

1F

37

1F

A7

B0

C490

1F

AB

E6

F8

AB

67

7A

07

8 F

C498

07

07

AB

E6

C7

AB

07

07

7B

C4A0

6F

7A

E6

07

47

04

3E

FE

C1

C4A8

0F

10

FD

06

FF

A8

47

7E

FA

C4B0

B0

77

C9

CD

28

2D

EF

A2

17

C4B8

A3

04

1F

04

38

CD

D5

2D

4D

C4C0

47

C9

CD

DF

C5

3A

03

5B

9D

C4C8

47

C5

68

26

00

CD

6A

C4

21

C4D0

EB

3A

03

5B

6F

26

00

CD

79

C4D8

6A

C4

A7

ED

52

CD

3A

C4

7B

C4E0

7D

32

2E

C5

3A

2E

C5

47

BA

C4E8

3A

01

5B

90

DC

1C

C5

5F

EE

C4F0

32

2C

C5

C1

C5

3A

02

5B

F4

C4F8

90

32

2D

C5

4B

47

CD

31

00

C500

C5

C1

C5

3A

02

5B

80

47

6E

C508

3A

2C

C5

4F

04

CD

31

C5

0E

C510

C1

3A

06

5B

4F

78

0C

91

95

C518

47

30

AE

C9

ED

44

57

3A

8D

C520

2E

C5

87

92

CB

3F

32

2E

5B

C528

C5

3E

00

C9

64

55

1C

04

92

C530

00

78

FE

AF

D0

51

58

3E

D1

C538

AF

93

5F

A7

1F

37

1F

A7

61

C540

1F

AB

E6

F8

AB

67

7A

07

40

C548

07

07

AB

E6

C7

AB

07

07

2C

C550

6F

E5

01

FF

57

A7

ED

42

96

C558

38

02

E1

C9

E1

7C

E6

07

4B

C560

DD

2A

7B

5C

06

00

4F

DD

35

C568

09

3A

05

5B

87

87

87

4F

B4

C570

DD

09

DD

7E

00

32

04

5B

07

C578

7A

E6

07

47

04

32

2F

C5

15

C580

3A

2E

C5

87

57

3A

04

5B

E9

C588

1E

FE

CB

0B

A3

10

FB

AE

9B

C590

77

3A

2F

C5

47

3E

08

90

17

C598

47

7A

90

57

38

30

23

7D

0D

C5A0

E 6

1F

D6

01

D8

7A

D6

08

71

C5A8

38

0F

57

3A

04

5B

AE

77

C9

C5B0

23

7D

E6

1F

D6

01

D8

18

E1

C5B8

EC

7A

E6

07

47

3E

08

90

ED

C5C0

47

1E

FE

3A

04

5B

A3

CB

EF

C5C8

03

10

FB

AE

77

C9

7A

C6

C9

C5D0

08

57

E6

07

47

1E

FE

7E

C2

C5D8

A3

CB

03

10

FB

77

C9

3A

93

C5E0

07

5B

FE

00

28

05

FE

01

31

C5E8

28

0D

C9

3E

B6

32

8F

C5

25

C5F0

32

AE

C5

32

CB

C5

C9

3E

23

C5F8

AE

18

F2

00

00

00

00

00

75

Демонстрационная БЕЙСИК-программа (автостарт со 2 строки):

1 GO TO 100

2 BORDER 7: PAPER 7: INK 0: CLEAR 4 9699:LOAD "data" CODE 4 9700

3 LOAD "circle" CODE 50000

4 FOR u=USR "a" TO USR "a"+7: POKE u,255: NEXT u: RUN 40 POKE 23297,x: POKE 23298,y: POKE 23299,r

45 RANDOMIZE USR 50000

49 RETURN

50 POKE 23297,x: POKE 23298,y: POKE 23299,r 55 RANDOMIZE USR 50370

59 RETURN

100 POKE 23302,0: POKE 23303,1: LET r=40

110 LET x=60: LET y=130: GO SUB 40

120 LET x=200: LET y=130: POKE 23301,0: GO SUB 50

130 LET x=60: LET y=40: POKE 23301,1: GO SUB 50

140 LET x=200: LET y=40: POKE 23301,0: GO SUB 50

150 LET x=200: LET y=40: POKE 23301,1: GO SUB 50_

Результат работы демонстрационной БЕЙСИК-программы Вы можете увидеть на рисунке. На этом заканчиваю. Может, кто и найдет другой способ черчения окружности и круга, более быстрый, ведь в "ЭЛИТЕ" же нашли!




СОДЕРЖАНИЕ:


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Вступление - первая электронная газета города Днепропетровск.
News - Нe знaю кaк вaм,a мнe кaжeтся бaнaльным нaзвaниe стaтьи.
Users group - Компрессия экранных файлов: Обзор ПО. Дискография. Анализ результатов компрессии.
Наши новости - О переодичности выхода газеты.
От авторов - Редакция.

В этот день...   18 апреля