Блог страдающего Лиса
Lorem ipsum hello dolor sit world amet

09 мая 2025 Пт Меня продрало на Спектрумский Бейсик

Однажды, давным-давно... в далеком детстве, в далекой-предалекой галактике жил-был один Лис. Но его не звали еще так. Он пытался сделать всякие мелкие программы, и не получилось ничего хорошего.
В общем, сегодня просто с утра решил посмотреть как работает генерация псевдографики, для интереса. Несмотря на небольшую программу, получилось весьма эффектно.
clipboard.png
BORDER 0: PAPER 0: INK 7: CLS

FOR Y=0 TO 20 STEP 2
FOR X=0 TO 30 STEP 2
BRIGHT 0
GO TO #A + 2*INT(RND*4)
#A INK 4: PRINT AT Y,X;";,";
   PRINT AT Y+1,X;",:";: GO TO #E
   INK 4: PRINT AT Y,X;",.";
   PRINT AT Y+1,X;".,";: GO TO #E
   INK 1: BRIGHT 1: PRINT AT Y,X;"~^";
   PRINT AT Y+1,X;"v~";: GO TO #E
   INK 4: BRIGHT 1: PRINT AT Y,X;"%%";
   INK 6: BRIGHT 0: PRINT AT Y+1,X;"||";: GO TO #E
#E NEXT X
NEXT Y

INK 3
LET X=14: LET Y=9
PRINT AT Y,X+1;"O"
PRINT AT Y+1,X;"(#\"
PRINT AT Y+2,X;"/ \"
STOP
Теги: Спектрум

08 мая 2025 Чт Эмеральд

Подумал как-то с утра, сделать бы эмеральд на спектруме и сделал что-то. Получилось оно или нет, мне известно не настолько точно, тем более я сделал код на модифицированном предбейсике для спектрума.
clipboard.png
Чтобы не потерять его и полимеры впридачу, просто покажу как он выглядит в бейсик-виде. Этот эмеральд рисуется немало времени, в пределах 4 секунд на 3.5 мгц процессоре.
BORDER 0: PAPER 0: INK 7: CLS

LET CX=0
LET CY=-0.5
LET CZ=2
LET K=1.1

LET X=0: LET Y=-1: LET Z=0
GO SUB #A
LET DX=XP: LET DY=YP
LET F=0

FOR I=2 TO 4.5 STEP 1.046/2

 LET X1=SIN(I): LET Z1=COS(I)
 LET X2=SIN(I)*K: LET Z2=COS(I)*K

-- Верхняя точка

 LET X=X1: LET Y=1: LET Z=Z1: GO SUB #A
 PLOT XP,YP
 IF F=0 THEN GO TO #PA
 DRAW AX-XP,AY-YP

#PA REM "SKIP 1"

 LET AX=XP: LET AY=YP: REM "PREV POINT1"
 LET X0=XP: LET Y=0.7: LET Y0=YP

 LET X=X2: LET Z=Z2: GO SUB #A
 PLOT AX, AY: DRAW XP-AX,YP-AY
 IF F=0 THEN GO TO #PB
 DRAW BX-XP, BY-YP

#PB REM "SKIP 2"
 LET BX=XP: LET BY=YP: REM "PREV POINT2"

-- Грань кристалла
 PLOT BX,BY: DRAW DX-BX,DY-BY

 LET F=1

NEXT I

STOP

#A REM "PROJECTION"
LET XP=128+(X+CX)*85/(CZ+Z)
LET YP=85+(Y+CY)*85/(CZ+Z)
RETURN
clipboard.png clipboard.png
Теги: Спектрум
<< Ранние записи | Поздние записи >>