Пример 1:
pixel(BLUE, {50, 60})
-- в точке {50,60} включится пиксел с цветом BLUE(синий)
Пример 2:
pixel({BLUE, GREEN, WHITE, RED}, {50,60})
-- {50,60} включится BLUE (синий)
-- {51,60} включится GREEN (зелёный)
-- {52,60} включится WHITE (белый)
-- {53,60} включится RED (красный)
См. также:
get_pixel, graphics_mode
platform
Синтаксис:
i = platform()
Описание:
Значение, выдаваемое функцией platform(), встроено в интерпретатор. Это значение показывает, с каким именно интерпретатором запущена программа, с интерпретатором для DOS32, WIN32, Linuxили FreeBSD.
Комментарии:
Когда работает ex.exe, считается, что операционная система DOS32. Когда работает exw.exe, операционная система WIN32. Когда работает exu, операционная система Linux (или FreeBSD).
В библиотеке misc.eопределены следующие глобальные константы:
global constant DOS32 = 1,
WIN32 = 2,
LINUX = 3,
FREEBSD = 3
Используйте функцию platform(), когда вам необходимо исполнять различный код в зависимости от операционной системы, в среде которой запущена ваша программа.
Дополнительные значения констант будут вводиться в Euphoria по мере освоения других машин и операционных систем.
Вызов функции platform() не влечёт никаких расходов. Во время компиляции просто вырабатывается соответствующая целочисленная величина: 1, 2 или 3.
Пример:
if platform() = WIN32 then
-- вызов системной подпрограммы Beep под Windows
err = c_func(Beep, {0,0})
elsif platform() = DOS32 then
-- запуск звука на встроенном динамике под DOS
sound(500)
t = time()
while time() do
end while
sound(0)
else
-- пропуск команды под Linux/FreeBSD
end if
См. также:
platformr.doc
poke
Синтаксис:
poke(a, x)
Описание:
Если x является атомом, в память по адресу a записывается один байт. Если же x является рядом, в память, начиная с адреса a, записывается последовательность байтов, представленная этим рядом.
Комментарии:
В память записываются младшие 8 битов величины x, т.е. remainder(x, 256), а не сама величина х.
Запись в память ряда байтов является значительно более быстрой, чем поочерёдная запись отдельных байтов в цикле.
Вывод в экранную память с помощью poke() может быть намного быстрее, чем стандартная запись на экран с помощью процедур puts() или printf(), но программирование такого вывода заметно сложнее. В большинстве случаев сверхвысокая скорость не требуется. Например, в редакторе ed.exиз пакета Euphoria poke() никогда не используется.
Пример:
a = allocate(100) -- выделяется 100 байтов в памяти
-- заносится в память один байт за один вызов poke():
poke(a, 97)
poke(a+1, 98)
poke(a+2, 99)
-- заносится 3 байта сразу:
poke(a, {97, 98, 99})
Пример программы:
demo\callmach.e x
См. также:
peek, poke4, allocate, free, allocate_low, free_low, call, safe.e
poke4
Синтаксис:
poke4(a, x)
Описание:
Если x является атомом, в память по адресу a записывается 4 байта (32 бита).
Если x является рядом, в память, начиная с адреса a, записывается последовательность 4-байтовых величин, представленная этим рядом.
Комментарии:
Величина или величины, предназначенные к записи, не должны превышать 32-битного значения.
Более быстрой является процедура записи сразу нескольких 4-байтовых величин, чем поочерёдная запись этих величин в цикле.
Записываемые 4-байтовые величины могут быть положительными или отрицательными. Считаны они могут быть затем с помощью или peek4s(), или peek4u().
Пример:
a = allocate(100) -- выделяется 100 байтов в памяти
-- записывается одна 4-байтовая величина за каждый вызов poke4():
poke4(a, 9712345)
poke4(a+4, #FF00FF00)
poke4(a+8, -12345)
-- записывается три 4-байтовых величины сразу:
poke4(a, {9712345, #FF00FF00, -12345})
См. также:
peek4u, peek4s, poke, allocate, allocate_low, call
polygon
Платформа:
DOS3 2
Синтаксис:
include graphics.e
polygon(i1, i2, s)
Описание:
Вычерчивается многоугольник с 3-мя или более вершинами, заданными в s, на пиксельно-графическом экране с использованием цвета i1. Внутренняя область закрашивается, если i2 равно 1. Не закрашивается, если i2 равно 0.
Пример:
polygon(GREEN, 1, {{100, 100}, {200, 200}, {900, 700}})
-- вычерчивается сплошной зелёный треугольник.
См. также:
draw_line, ellipse
position
Синтаксис:
position(i1, i2)
Описание:
Перемещает курсор на строку i1, в колонку i2, верхний левый угол экрана соответствует строке 1, колонке 1. Символ, выводимый на экран после этой команды, появится именно в назначенном месте. position() сообщит об ошибке, если предпринимается попытка задания знакоместа за пределами экрана.
Читать дальше