Блог страдающего Лиса
Lorem ipsum hello dolor sit world amet
08 мая 2025 Чт
Эмеральд
Подумал как-то с утра, сделать бы эмеральд на спектруме и сделал что-то. Получилось оно или нет, мне известно не настолько точно, тем более я сделал код на модифицированном предбейсике для спектрума.

Чтобы не потерять его и полимеры впридачу, просто покажу как он выглядит в бейсик-виде. Этот эмеральд рисуется немало времени, в пределах 4 секунд на 3.5 мгц процессоре.


Чтобы не потерять его и полимеры впридачу, просто покажу как он выглядит в бейсик-виде. Этот эмеральд рисуется немало времени, в пределах 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

