3d

Модераторы: test, Vh180477, 1961uvg

Аватара пользователя
test
Сообщения: 279
Зарегистрирован: 16 ноя 2015, 19:03
Контактная информация:

3d

Сообщение test » 28 ноя 2015, 17:31

две статьи про программное 3d

http://web.archive.org/web/201312211619 ... %3A_Part_1

http://back2basic.phatcode.net/?Issue_% ... %3A_Part_2

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

http://zxpress.ru/book.php?id=13

Аватара пользователя
test
Сообщения: 279
Зарегистрирован: 16 ноя 2015, 19:03
Контактная информация:

Тригонометрия

Сообщение test » 28 ноя 2015, 18:34

Стряхиваем пыль с QB исходников 10-летней давности :)

пример 1

Код: Выделить всё

SCREEN 7
REM цель -нарисовать палку под углом
FOR a = 0 TO 60 STEP 10
LET x = 160: y = 100: l = 40
LINE (x, y)-(x + l, y)
LINE (x, y)-(x, y - l)
LINE (x, y)-(x + l * COS(a * .0174), y - l * SIN(a * .0174))
NEXT a


переменная a - угол, l - длина луча

.0174 это переводим Градусы в Радианы; машина считает в радианах, поэтому такой вынужденный шаг (Гугл "deg to rad").

добавив sleep 10000 в конец программы,

компилируем во FreeBasic :

fbc.exe -lang qb -s gui NAME.bas

получаем

alph.PNG
alph.PNG (3.66 КБ) 833 просмотра

Аватара пользователя
test
Сообщения: 279
Зарегистрирован: 16 ноя 2015, 19:03
Контактная информация:

Re: 3d

Сообщение test » 23 июн 2016, 15:30

http://www.artofillusion.org

Open-source 3d modelling software

Аватара пользователя
test
Сообщения: 279
Зарегистрирован: 16 ноя 2015, 19:03
Контактная информация:

Re: 3d

Сообщение test » 29 июл 2016, 08:44

Тригонометрия, переписанная на PureBasic

Код: Выделить всё

InitSprite()
InitMouse()

InitKeyboard()

OpenScreen(800,600,32,"")

x = 160
  y = 100
  l = 40
  clr=$FFFFFF
 
 
  StartDrawing(ScreenOutput())
 
For a = 0 To 60 Step 10
 
  k.f=l * Cos(a * 0.0174)
  n.f=l * Sin(a * 0.0174)
 
LineXY (x, y,x + l, y,clr)
LineXY (x, y,x, y - l,clr)
LineXY (x, y,x + k, y - n,clr)

Next a

StopDrawing()
 FlipBuffers()

Repeat
 
ExamineMouse()
  ExamineKeyboard()
Delay(1)
    Until KeyboardPushed(#PB_Key_Escape)


Вернуться в «Графика»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость