Úkolem je implementovat softwarově algoritmus pro vykreslování grafu funkce dvou proměnných (R2->R). Algoritmus bude mít k dispozici funkci y = y(x,z), rozsah hodnot xmin, xmax, zmin, zmax a jemnost a styl aproximace plochy. Směr pohledu je dán dvěma úhly - azimutem a elevací. Cílem je nakreslit do rastrového obrázku plochu grafu funkce s viditelností. Je potřeba umět správně vykreslit povrchové křivky (lomené čáry), je tedy zvlášť vhodný algoritmus plovoucího horizontu v některé své variantě.
Základem poslouží projekt 017graph z repository
grcis.
Je připravena aplikace, která umožňuje uživateli vybrat si funkci, rozsah souřadnic x a z
a jemnost aproximace. Směr pohledu se zadává dvěma úhly. Vaším úkolem je zobrazit plochu
s viditelností do rastrového obrázku dané velikosti.
Pro implementaci vašeho algoritmu budete modifikovat předem založenou
třídu GraphRendering nacházející se ve zdrojovém souboru
GraphRendering.cs. Kreslicí metoda se jmenuje GraphRendering.Render().
Náměty: metoda plovoucího horizontu v rastrové nebo vektorové variantě, s vyplňováním plošek nebo bez něj (tj. pouze čárová kresba).
Technicky: dostanete objekt implementující interface IFunctionR2ToR, který definuje funkci y = y(x,z). Dále budete mít k dispozici parametry pohledu (úhly kamery, velikost rastrového výsledku, apod.) a vaším úkolem bude vykreslit kompletní obrázek grafu funkce do paměti (objekt typu Bitmap).
TERMÍN: do 30. 1. 2011
BODY: 8 až 16 bodů
PROJEKT: 017graph
ZDROJOVÝ SOUBOR: GraphRendering.cs
VZOR VÝSLEDKU: var0, 60x60, az30, el30, var2, 80x80, az30, el10
Copyright (C) 2010-2011 J.Pelikán,
last change: $Date: 2014-10-03 15:44:39 +0200 (Fri, 03 Oct 2014) $
Send comments/requests to
pepca.at.cgg.mff.cuni.cz