Файл:Карта высот.png
Содержимое страницы недоступно на других языках.
Материал из Викиучебника — открытых книг для открытого мира
Карта_высот.png (637 × 478 пкс, размер файла: 56 Кб, MIME-тип: image/png)
Cведения об этом файле находятся на Викискладе?, хранилище изображений и мультимедиа для использования во всех проектах Фонда Викимедиа. |
Краткое описание
ОписаниеКарта высот.png |
Русский: Карта высот English: height map |
Дата | |
Источник | Собственная работа |
Автор | Владислав Молдован |
Pascal src code
- RndMax - upper bound
uses GraphABC;
const
RndMax = 255;
type
Point3D = class
X, Y, Z: real;
constructor(px, py, pz: real);
begin
X := px;
Y := py;
Z := pz;
end;
end;
procedure Draw(pA, pC: Point3D; bZ, dZ: real);
begin
var pB := new Point3D(pC.X, pA.Y, bZ);
var pD := new Point3D(pA.X, pC.Y, dZ);
var cx := (pA.X + pB.X) / 2;
var cy := (pB.Y + pC.Y) / 2;
if (pB.X - pA.X) * (pC.Y - pB.Y) > 1 then
begin
var maxz := Max(Max(Max(pA.Z, pB.Z), pC.Z), pD.Z);
var minz := Min(Min(Min(pA.Z, pB.Z), pC.Z), pD.Z);
var randz := 0.0;
if maxz - minz > 0 then randz := minz + Random() * (maxz - minz);
var pCenter := new Point3D(cx, cy, randz);
var p1 := new Point3D(cx, pA.Y, (pA.Z + pB.Z) / 2);
var p2 := new Point3D(pB.X, cy, (pB.Z + pC.Z) / 2);
var p3 := new Point3D(cx, pC.Y, (pC.Z + pD.Z) / 2);
var p4 := new Point3D(pA.X, cy, (pD.Z + pA.Z) / 2);
Draw(pA, pCenter, p1.Z, p4.Z);
Draw(p1, p2, pB.Z, pCenter.Z);
Draw(pCenter, pC, p2.Z, p3.Z);
Draw(p4, p3, pCenter.Z, pD.Z);
end
else
begin
var zv := Round((pA.Z + pB.Z + pC.Z + pD.Z) / 4);
SetBrushColor(RGB(0, zv, 255));
FillRect(Round(pA.X), Round(pA.Y), Round(pC.X), Round(pC.Y));
end;
end;
begin
var W := Window.Width;
var H := Window.Height;
SetWindowIsFixedSize(true);
LockDrawing();
Draw(new Point3D(0, 0, Random(RndMax)), new Point3D(W, H, Random(RndMax)), Random(RndMax), Random(RndMax));
Redraw();
end.
Лицензирование
Я, владелец авторских прав на это произведение, добровольно публикую его на условиях следующей лицензии:
Этот файл доступен по лицензии Creative Commons Attribution-Share Alike 4.0 International
- Вы можете свободно:
- делиться произведением – копировать, распространять и передавать данное произведение
- создавать производные – переделывать данное произведение
- При соблюдении следующих условий:
- атрибуция – Вы должны указать авторство, предоставить ссылку на лицензию и указать, внёс ли автор какие-либо изменения. Это можно сделать любым разумным способом, но не создавая впечатление, что лицензиат поддерживает вас или использование вами данного произведения.
- распространение на тех же условиях – Если вы изменяете, преобразуете или создаёте иное произведение на основе данного, то обязаны использовать лицензию исходного произведения или лицензию, совместимую с исходной.
Элементы, изображённые на этом файле
изображённый объект
У этого свойства есть некоторое значение без элемента в
1 сентября 2017
image/png
История файла
Нажмите на дату/время, чтобы увидеть версию файла от того времени.
Дата/время | Миниатюра | Размеры | Участник | Примечание | |
---|---|---|---|---|---|
текущий | 09:32, 1 сентября 2017 | 637 × 478 (56 Кб) | Владислав Молдован | User created page with UploadWizard |
Использование файла
Следующая страница использует этот файл:
Метаданные
Файл содержит дополнительные данные, обычно добавляемые цифровыми камерами или сканерами. Если файл после создания редактировался, то некоторые параметры могут не соответствовать текущему изображению.
Горизонтальное разрешение | 37,79 точек на сантиметр |
---|---|
Вертикальное разрешение | 37,79 точек на сантиметр |