3D-s számítógépes geometria és alakzatrekonstrukció
|
|
- Lóránd Soós
- 8 évvel ezelőtt
- Látták:
Átírás
1 3D-s számítógépes geometria és alakzatrekonstrukció 3c. Tesztkörnyezet III Dr. Várady Tamás, Salvi Péter BME, Villamosmérnöki és Informatikai Kar Irányítástechnika és Informatika Tanszék
2 Tartalom Átlaggörbület-approximáció Mesh-navigáció [OpenMesh] Dialógusablakok felépítése [Qt] Layoutok Színezés [OpenGL] Fényvonalak Fényvonal-textúra kiszámítása Resource-ok használata [Qt] Textúrák használata [OpenGL] Környezeti textúrák
3 Harmadik fázis Átlaggörbület Színkódolás [kék zöld piros] Szélsőértékek meghatározása Fényvonalak [bővebben később] Tartomány szélének levágása Explicit megadás Dinamikus textúra Kimutat apró egyenetlenségeket Ehhez: Qt [menü, dialóguskészítés] OpenGL [színezés, textúra] OpenMesh [háromszögháló bejárás]
4 Átlaggörbület (ismétlés) Becslés háromszöglegyező alapján 1 βi e i i 4 H p = 1 A p 3 Feladatok: A(p) kiszámítása (és eltárolása) βi szögek kiszámítása H(p) eltárolása
5 Figyelem! A kódrészletek nem pontosak/teljesek Csak a lényeges részeket mutatják Gyakran kimaradnak... Scope-operátorok Deklarációk #include utasítások Stb. Teljes verzió A honlapon levő zip fájlokban Érdemes óra után részletesen átnézni
6 Háromszögterületek MyViewer.h: struct MyTraits : public OpenMesh::DefaultTraits { VertexTraits { double area; // total area of the surrounding triangles double mean; // approximated mean curvature ; FaceTraits { double area; ; ; typedef OpenMesh::TriMesh_ArrayKernelT<MyTraits> MyMesh; MyViewer.cpp: for(constfaceiter i = mesh.faces_begin(), ie = mesh.faces_end(); i!= ie; ++i) { HalfedgeHandle h1 = mesh.halfedge_handle(*i); HalfedgeHandle h2 = mesh.next_halfedge_handle(h1); mesh.data(*i).area = (halfedgevector(h1) % halfedgevector(h2)).norm() / 2; for(vertexiter i = mesh.vertices_begin(), ie = mesh.vertices_end(); i!= ie; ++i) { mesh.data(*i).area = 0; mesh.data(*i).mean = 0; for(constvertexfaceiter j(mesh, *i); j.is_valid(); ++j) mesh.data(*i).area += mesh.data(*j).area;
7 MyViewer.cpp Segédfüggvény: Vector MyViewer::halfedgeVector(HalfedgeHandle const &h) const { return mesh.point(mesh.to_vertex_handle(h)) mesh.point(mesh.from_vertex_handle(h)); Átlaggörbület-számítás: for(vertexiter i = mesh.vertices_begin(), ie = mesh.vertices_end(); i!= ie; ++i) { for(constvertexedgeiter j(mesh, *i); j.is_valid(); ++j) { double angle; HalfedgeHandle h1 = mesh.halfedge_handle(*j, 0); HalfedgeHandle h2 = mesh.halfedge_handle(*j, 1); i i Vector v = halfedgevector(h1); 1 β e i 4 H p = 1 mesh.is_boundary(h2)) A p 3 if(mesh.is_boundary(h1) angle = 0.0; else { Vector n1 = mesh.normal(mesh.face_handle(h1)); Vector n2 = mesh.normal(mesh.face_handle(h2)); angle = acos(std::min(std::max(n1 n2, -1.0f), 1.0f)); angle *= ((n1 % n2) v) >= 0.0? 1.0 : -1.0; mesh.data(*i).mean += angle * v.norm(); mesh.data(*i).mean *= 3.0 / 4.0 / mesh.data(*i).area;
8 A program szervezése MyViewer osztály Görbületszámítás double mean_min, mean_max, cutoff_ratio getmeanmin(), setmeanmin(double) stb. enum {COLOR_PLAIN, COLOR_MEAN coloring updatemeancurvature(bool update_min_max) Min/max update nem kell pl. fairing után Színezés meanmapcolor(double, double *) GUI Menü, dialógusablakok Billentyűleütésre (P/M) coloring változtatása
9 MyViewer.cpp void MyViewer::updateMeanCurvature(bool update_min_max) {... // Mean curvature computation if(update_min_max) updatemeanminmax(); void MyViewer::updateMeanMinMax() { size_t n = mesh.n_vertices(); if(n == 0) return; std::vector<double> mean; mean.reserve(n); for(vertexiter i = mesh.vertices_begin(), ie = mesh.vertices_end(); i!= ie; ++i) mean.push_back(mesh.data(*i).mean); std::sort(mean.begin(), mean.end()); size_t k = (double)n * cutoff_ratio; mean_min = std::min(mean[k-1], 0.0); mean_max = std::max(mean[n-k], 0.0);
10 MyViewer.cpp void MyViewer::meanMapColor(double d, double *color) const { if(d <= mean_min) { color[0] = 0.0; color[1] = 0.0; color[2] = 1.0; else if(d >= mean_max) { color[0] = 1.0; color[1] = 0.0; color[2] = 0.0; else if(d < 0) { double alpha = d / mean_min; color[0] = 0.0; color[1] = alpha; color[2] = alpha; else { double alpha = d / mean_max; color[0] = alpha; color[1] = alpha; color[2] = 0; void MyViewer::draw() {... std::vector<double> color(3, 1.0); for(constfaceiter i = mesh.faces_begin(), ie = mesh.faces_end(); i!= ie; ++i) { glbegin(gl_polygon); for(constfacevertexiter j(mesh, *i); j.is_valid(); ++j) { if(coloring == COLOR_MEAN) { meanmapcolor(mesh.data(*j).mean, &color[0]); glcolor3dv(&color[0]); glnormal3fv(mesh.normal(*j).data()); glvertex3fv(mesh.point(*j).data()); glend();...
11 GUI MyViewer.cpp: void MyViewer::keyPressEvent(QKeyEvent *e) {... case Qt::Key_P: coloring = COLOR_PLAIN; updategl(); break; case Qt::Key_M: coloring = COLOR_MEAN; updategl(); break;... MyWindow.cpp: MyWindow::MyWindow(QApplication *parent) : QMainWindow(), parent(parent) {... QAction *cutoffaction = new QAction(tr("Set &cutoff ratio"), this); cutoffaction->setstatustip(tr("set mean map cutoff ratio")); connect(cutoffaction, SIGNAL(triggered()), this, SLOT(setCutoff())); QAction *rangeaction = new QAction(tr("Set &range"), this); rangeaction->setstatustip(tr("set mean map range")); connect(rangeaction, SIGNAL(triggered()), this, SLOT(setRange())); QMenu *vismenu = menubar()->addmenu(tr("&visualization")); vismenu->addaction(cutoffaction); vismenu->addaction(rangeaction);
12 Kitérő Layoutok Widgetek elhelyezése QWidget::setLayout [a legkülső layout] QLayout::addWidget, QLayout::addLayout QBoxLayout, QGridLayout, QFormLayout Jó alapméretek, átméretezés kezelése Saját widgetekhez sizehint()
13 setcutoff() QDialog *dlg = new QDialog(this); QHBoxLayout *hb1 = new QHBoxLayout, *hb2 = new QHBoxLayout; QVBoxLayout *vb = new QVBoxLayout; QLabel *text = new QLabel(tr("Cutoff ratio:")); QDoubleSpinBox *sb = new QDoubleSpinBox; QPushButton *cancel = new QPushButton(tr("Cancel")); QPushButton *ok = new QPushButton(tr("Ok")); sb->setdecimals(3); sb->setrange(0.001, 0.5); sb->setsinglestep(0.01); sb->setvalue(viewer->getcutoffratio()); connect(cancel, SIGNAL(pressed()), dlg, SLOT(reject())); connect(ok, SIGNAL(pressed()), dlg, SLOT(accept())); ok->setdefault(true); hb1->addwidget(text); hb1->addwidget(sb); hb2->addwidget(cancel); hb2->addwidget(ok); vb->addlayout(hb1); vb->addlayout(hb2); dlg->setwindowtitle(tr("set ratio")); dlg->setlayout(vb); if(dlg->exec() == QDialog::Accepted) { viewer->setcutoffratio(sb->value()); viewer->updategl();
14 setrange() QDialog *dlg = new QDialog(this); QGridLayout *grid = new QGridLayout; QLabel *text1 = new QLabel(tr("Min:")), *text2 = new QLabel(tr("Max:")); QDoubleSpinBox *sb1 = new QDoubleSpinBox, *sb2 = new QDoubleSpinBox; QPushButton *cancel = new QPushButton(tr("Cancel")); QPushButton *ok = new QPushButton(tr("Ok")); double max = std::numeric_limits<double>::max(); sb1->setdecimals(5); sb2->setdecimals(5); sb1->setrange(-max, 0.0); sb2->setrange(0.0, max); sb1->setsinglestep(0.01); sb2->setsinglestep(0.01); sb1->setvalue(viewer->getmeanmin()); sb2->setvalue(viewer->getmeanmax()); connect(cancel, SIGNAL(pressed()), dlg, SLOT(reject())); connect(ok, SIGNAL(pressed()), dlg, SLOT(accept())); ok->setdefault(true); grid->addwidget( text1, 1, 1, Qt::AlignRight); grid->addwidget( sb1, 1, 2); grid->addwidget( text2, 2, 1, Qt::AlignRight); grid->addwidget( sb2, 2, 2); grid->addwidget(cancel, 3, 1); grid->addwidget( ok, 3, 2); dlg->setwindowtitle(tr("set range")); dlg->setlayout(grid); if(dlg->exec() == QDialog::Accepted) { viewer->setmeanmin(sb1->value()); viewer->setmeanmax(sb2->value()); viewer->updategl();
15 Tükröződési vonalak Struktúrált fények visszaverődései Intuitív, G1/G2 hiba Folytonos, sima: G2 Folytonos, tört: G1
16 Fényvonalak (Isophotes) Egyszerűbben számolható Referencia pontból sugarak Beesési szög a normálvektorral: p ref p α = cos n p ref p 1 Megjelenítés: piros/fehér 5 fokonként Probléma: Referencia pont változik textúra változik Új textúrát generálni lassú
17 OpenGL trükk Környezeti térkép (environment map) Dinamikus textúra A felületi pont textúra pont hozzárendelés a nézőponttól és a normálvektortól függ Ötlet: referenciapont = nézőpont OpenGL gömb leképezés
18 Gömb leképezés (x,y,z) a visszaverődés iránya [szem-koordinátarendszerben] Ehhez rendelt textúra ([0,1]x[0,1]-ben): s, t = x 1 y ,, ahol m = 2 x y 1 z m 2 m 2 Lekódolja az összes irányt 3 koordináta, de egységvektor két szabadságfok Ez a kódolás látványos (projekció) Könnyen rátehető panoráma is
19 Fényvonalak kiszámítása Feladat: (s,t) textúrakoordináta α szög (x,y,z) egységvektor, tehát 8 x 2 y z = 1 = 8 s s t t 3 2 m cos 1 z α= 2 és, mivel z épp a referenciairány Ez alapján kiszínezhető a textúra Képfájlként fogjuk beolvasni
20 A Qt resource rendszer Fájlok tárolása a futtatható állományban Tipikusan képek, szövegek (HTML stb.) XML-jellegű leíró fájl (.qrc) Ebből adat-cpp fájl generálódik Formátum: <!DOCTYPE RCC><RCC version="1.0"> <qresource> <file>isophotes.png</file> </qresource> </RCC> Projekt fájl: RESOURCES = sample-framework.qrc Qt-s fájlműveleteknél :/ elérési út
21 OpenGL textúra készítés Textúra ID Paraméterek (gltexparameter[if]v?) Külső pontra mit csináljon (pl. csempézés) Minőségjavító min/mag filterek stb. Környezeti beállítások (gltexenv[if]v?) Generálás (n db.): glgentextures(n, addr) Hozzárendelés: glbindtexture(type, id) Törlés (n db.): gldeletetextures(n, addr) Textúra, árnyalás és anyag (szín) kapcsolata Textúra készítese glteximage2d(...sok paraméter...)
22 OpenGL textúra koordináták glenable(gl_texture_2d) Megadható pontonként gltexcoord[1234][dfis]v? Az aktuális (bind-olt) textúrára vonatkozik Generált koordináták gltexgen[dfi]v? : generálás paraméterei GL_TEXTURE_GEN_MODE : mód beállítása GL_OBJECT_LINEAR GL_EYE_LINEAR GL_SPHERE_MAP GL_OBJECT_PLANE / GL_EYE_PLANE : sík megadása glenable(gl_texture_gen_s) glenable(gl_texture_gen_t)
23 Textúra inicializálás MyViewer.cpp: void MyViewer::init() { gllightmodeli(gl_light_model_two_side, 1); QImage img(":/isophotes.png"); glgentextures(1, &isophote_texture); glbindtexture(gl_texture_2d, isophote_texture); gltexparameteri(gl_texture_2d, GL_TEXTURE_MIN_FILTER, GL_LINEAR); gltexparameteri(gl_texture_2d, GL_TEXTURE_MAG_FILTER, GL_LINEAR); gltexparameteri(gl_texture_2d, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); gltexparameteri(gl_texture_2d, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); glteximage2d(gl_texture_2d, 0, GL_RGBA8, img.width(), img.height(), 0, GL_BGRA, GL_UNSIGNED_BYTE, img.converttoformat(qimage::format_argb32).bits()); GL_LINEAR: (lineáris interpoláció) Távoli felületek [MIN] Közeli felületek [MAG] GL_CLAMP_TO_EDGE: Kívül eső pontokat a szélére húzza
24 Textúra a háromszöghálón MyViewer.cpp: void MyViewer::draw() {... if(coloring == COLOR_PLAIN) glcolor3dv(&color[0]); else if(coloring == COLOR_ISOPHOTES) { glbindtexture(gl_texture_2d, isophote_texture); gltexenvf(gl_texture_env, GL_TEXTURE_ENV_MODE, GL_DECAL); glenable(gl_texture_2d); gltexgeni(gl_s, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP); gltexgeni(gl_t, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP); glenable(gl_texture_gen_s); glenable(gl_texture_gen_t); for(constfaceiter i = mesh.faces_begin(), ie = mesh.faces_end(); i!= ie; ++i) {... // Drawing the triangles if(coloring == COLOR_ISOPHOTES) { gldisable(gl_texture_gen_s); gldisable(gl_texture_gen_t); gldisable(gl_texture_2d); gltexenvf(gl_texture_env, GL_TEXTURE_ENV_MODE, GL_MODULATE);...
3D-s számítógépes geometria és alakzatrekonstrukció
3D-s számítógépes geometria és alakzatrekonstrukció Tesztkörnyezet III http://cg.iit.bme.hu/portal/node/312 https://portal.vik.bme.hu/kepzes/targyak/viiima01 Dr. Várady Tamás, Dr. Salvi Péter BME, Villamosmérnöki
3D-s számítógépes geometria és alakzatrekonstrukció
3D-s számítógépes geometria és alakzatrekonstrukció Tesztkörnyezet I http://cg.iit.bme.hu/portal/node/312 https://portal.vik.bme.hu/kepzes/targyak/viiima01 Dr. Várady Tamás, Dr. Salvi Péter BME, Villamosmérnöki
3D-s számítógépes geometria és alakzatrekonstrukció
3D-s számítógépes geometria és alakzatrekonstrukció Tesztkörnyezet II http://cg.iit.bme.hu/portal/node/312 https://portal.vik.bme.hu/kepzes/targyak/viiima01 Dr. Várady Tamás, Dr. Salvi Péter BME, Villamosmérnöki
3D-s számítógépes geometria és alakzatrekonstrukció
3D-s számítógépes geometria és alakzatrekonstrukció 3a. Tesztkörnyezet I http://cg.iit.bme.hu/portal/node/312 https://portal.vik.bme.hu/kepzes/targyak/viiima01 Dr. Várady Tamás, Salvi Péter BME, Villamosmérnöki
Árnyalás, env mapping. Szécsi László 3D Grafikus Rendszerek 3. labor
Árnyalás, env mapping Szécsi László 3D Grafikus Rendszerek 3. labor Egyszerű árnyaló FS legyen egy fényirány-vektor normálvektor és fényirány közötti szög koszinusza az irradiancia textúrából olvasott
3D számítógépes geometria és alakzatrekonstrukció
3D számítógépes geometria és alakzatrekonstrukció 15. Digitális Alakzatrekonstrukció Méréstechnológia, Ponthalmazok regisztrációja http://cg.iit.bme.hu/portal/node/312 https://www.vik.bme.hu/kepzes/targyak/viiima01
Grafikus Qt programok írása segédeszközök nélkül
Grafikus Qt programok írása segédeszközök nélkül Grafikus felületű Qt programokat ahogy láttuk, készíthetünk egy egyszerű szövegszerkesztővel is, bár a Qt jó támogatást ad a grafikus felület grafikus tervezésére
Elemi alkalmazások fejlesztése IV. Adatbázis-kezelő GUI alkalmazás készítése 3. Összetett tábla karbantartása
Elemi alkalmazások fejlesztése IV. Adatbázis-kezelő GUI alkalmazás készítése 3. Összetett tábla karbantartása Készítette: Szabóné Nacsa Rozália nacsa@inf.elte.hu people.inf.elte.hu/nacsa/eaf4/ Qt 4 2007
3D számítógépes geometria és alakzatrekonstrukció
3D számítógépes geometria és alakzatrekonstrukció 14. Digitális Alakzatrekonstrukció - Bevezetés http://cg.iit.bme.hu/portal/node/312 https://www.vik.bme.hu/kepzes/targyak/viiima01 Dr. Várady Tamás, Dr.
3D - geometriai modellezés, alakzatrekonstrukció, nyomtatás
3D - geometriai modellezés, alakzatrekonstrukció, nyomtatás 15. Digitális Alakzatrekonstrukció Méréstechnológia, Ponthalmazok regisztrációja http://cg.iit.bme.hu/portal/node/312 https://www.vik.bme.hu/kepzes/targyak/viiiav54
Elemi alkalmazások fejlesztése III.
Elemi alkalmazások fejlesztése III. Grafikus felületű alkamazások készítése Bevezetés I. Készítette: Szabóné Nacsa Rozália nacsa@inf.elte.hu people.inf.elte.hu/nacsa/qt4/eaf3/ Qt 4 2009 1 www.trolltech.com
3D - geometriai modellezés, alakzatrekonstrukció, nyomtatás
3D - geometriai modellezés, alakzatrekonstrukció, nyomtatás ek - 2019. április 2. http://cg.iit.bme.hu/portal/node/312 https://www.vik.bme.hu/kepzes/targyak/viiima01 Dr. Várady Tamás, Dr. Salvi Péter BME,
BME MOGI Gépészeti informatika 6.
BME MOGI Gépészeti informatika 6. 1. feladat Készítsen Windows Forms alkalmazást véletlen adatokkal létrehozott körök kölcsönös helyzetének vizsgálatára! Hozza létre a következő struktúrákat, melynek elemei
3D-s számítógépes geometria
3D-s számítógépes geometria 2. Háromszöghálók http://cg.iit.bme.hu/portal/node/312 https://www.vik.bme.hu/kepzes/targyak/viiiav01 Dr. Várady Tamás BME, Villamosmérnöki és Informatikai Kar Irányítástechnika
Elemi alkalmazások fejlesztése III. A Qt assistant elindítása. Ajánlott ir odalom. A Qt assistant nyitó ablaka
Elemi alkalmazások fejlesztése III Ajánlott ir odalom Egy ablakos alkalmazás készítése I. C++ / Qt felhasználásával Qt dokumentáció online: www.trolltech.com lokális változat: Kdevelop help vagy /usr/share/doc...
3D - geometriai modellezés, alakzatrekonstrukció, nyomtatás
3D - geometriai modellezés, alakzatrekonstrukció, nyomtatás Önálló projektek - 2017. április 7. http://cg.iit.bme.hu/portal/node/312 https://www.vik.bme.hu/kepzes/targyak/viiima01 Dr. Várady Tamás, Dr.
3D Számítógépes Geometria II.
3D Számítógépes Geometria II. 1. Bevezetés http://cg.iit.bme.hu/portal/3dgeo2 https://www.vik.bme.hu/kepzes/targyak/viiiav16 Dr. Várady Tamás, Dr. Salvi Péter BME, Villamosmérnöki és Informatikai Kar Irányítástechnika
3D-s számítógépes geometria és alakzatrekonstrukció
3D-s számítógépes geometria és alakzatrekonstrukció 14. Digitális Alakzatrekonstrukció - Bevezetés http://cg.iit.bme.hu/portal/node/312 https://www.vik.bme.hu/kepzes/targyak/viiiav08 Dr. Várady Tamás,
Programozás alapjai C nyelv 10. gyakorlat. Standard függvények. Union
Programozás alapjai C nyelv 10. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.11.21. -1- Standard függvények Standard függvények amelyeket
A jobboldalon a pnlright egy Stacked Widget Állítsuk be az első lapot és nevezzük el pnldraw-ra:
A Rajzolás lap A rajzolás lap elemi rajzolási lehetőségek bemutatására szolgál. A rajzolás a jobboldali pnlright widget egyik lapjára rakott widgetre történik. A pnlright egy több lapot tartalmazó widget
Számítógépes Grafika mintafeladatok
Számítógépes Grafika mintafeladatok Feladat: Forgassunk a 3D-s pontokat 45 fokkal a X tengely körül, majd nyújtsuk az eredményt minden koordinátájában kétszeresére az origóhoz képest, utána forgassunk
Dinamikus felületű alkalmazások. Stílusok, időzítő, képek
Dinamikus felületű alkalmazások Stílusok, időzítő, képek Felhasználói felület fajtái Az alkalmazásaink grafikus felülete alapvetően kétféle lehet: statikus: az alkalmazás felületén lévő vezérlőket induláskor
Feladatok. Tervek alapján látvány terv készítése. Irodai munka Test modellezés. Létező objektum számítógépes modelljének elkészítése
Virtuális valóság Feladatok Tervek alapján látvány terv készítése Irodai munka Test modellezés Létező objektum számítógépes modelljének elkészítése Geodéziai mérések Fotogrammetriai feldolgozás Egyszerű
Elemi alkalmazások fejlesztése III.
Elemi alkalmazások fejlesztése III. Memóriajáték 1. Készítette: Szabóné Nacsa Rozália nacsa@inf.elte.hu people.inf.elte.hu/nacsa/qt4/eaf3/ Qt 4 2007 1 memorygame Játék közben 2 memorygame Kártyák kiválasztása
BME MOGI Gépészeti informatika 18. Grafika, fájlkezelés gyakorló óra. 1. feladat Készítsen alkalmazást az = +
BME MOGI Gépészeti informatika 18. Grafika, fájlkezelés gyakorló óra 1. feladat Készítsen alkalmazást az = + függvény ábrázolására! Az értelmezési tartomány a [-6;5] intervallum, a lépésköz 0,1 legyen!
3D - geometriai modellezés, alakzatrekonstrukció, nyomtatás
3D - geometra modellezés alazatreonstró nyomtatás 9. Szabadformáú felülete smtása http://g.t.bme.h/portal/node/3 https://www..bme.h/epzes/targya/viiiav54 Dr. Várady Tamás Dr. Sal éter BME Vllamosmérnö
Egészítsük ki a Drupal-t. Drupal modul fejlesztés
Egészítsük ki a Drupal-t Drupal modul fejlesztés Drupal 6.0 2008. február 13. Miért írjunk Drupal modult? Nincs az igényeinknek megfelelő modul Valamilyen közösségi igény kielégítése Valami nem úgy működik
Elemi alkalmazások fejlesztése III.
Elemi alkalmazások fejlesztése III. Bevezetés Készítette: Szabóné Nacsa Rozália nacsa@inf.elte.hu people.inf.elte.hu/nacsa/qt4/eaf3/ Qt 4 2007 1 A Qt assistant nyitó ablaka www.trolltech.com 2 Alkalmazás
3D számítógépes geometria és alakzatrekonstrukció
3D számítógépes geometria és alakzatrekonstrukció 2a. Háromszöghálók http://cg.iit.bme.hu/portal/node/312 https://www.vik.bme.hu/kepzes/targyak/viiima01 Dr. Várady Tamás, Dr. Salvi Péter BME, Villamosmérnöki
BME MOGI Gépészeti informatika 15.
BME MOGI Gépészeti informatika 15. 1. feladat Készítsen alkalmazást a y=2*sin(3*x-π/4)-1 függvény ábrázolására a [-2π; 2π] intervallumban 0,1-es lépésközzel! Ezen az intervallumon a függvény értékkészlete
2D képszintézis. Szirmay-Kalos László
2D képszintézis Szirmay-Kalos László 2D képszintézis Modell szín (200, 200) Kép Kamera ablak (window) viewport Unit=pixel Saját színnel rajzolás Világ koordinátarendszer Pixel vezérelt megközelítés: Tartalmazás
Programozás alapjai II. (9. ea) C++ többszörös öröklés, cast, perzisztencia
Öröklés ism. Programozás alapjai II. (9. ea) C++ többszörös öröklés, cast, perzisztencia Szeberényi Imre BME IIT Egy osztályból olyan újabb osztályokat származtatunk, amelyek rendelkeznek
Textúrák. Szécsi László
Textúrák Szécsi László Textúra interpretációk kép a memóriában ugyanolyan mint a frame buffer pixel helyett texel adatok tömbje 1D, 2D, 3D tömb pl. RGB rekordok függvény diszkrét mintapontjai rácson rekonstrukció:
3D-s számítógépes geometria és alakzatrekonstrukció
3D-s számítógépes geometria és alakzatrekonstrukció 2a. Háromszöghálók http://cg.iit.bme.hu/portal/node/312 https://www.vik.bme.hu/kepzes/targyak/viiiav08 Dr. Várady Tamás, Salvi Péter BME, Villamosmérnöki
BME MOGI Gépészeti informatika 7.
BME MOGI Gépészeti informatika 7. 1. feladat Írjon Windows Forms alkalmazást egy kör és egy pont kölcsönös helyzetének vizsgálatára! A feladat megoldásához hozza létre a következő osztályokat! Pont osztály:
Elemi alkalmazások fejlesztése III
Elemi alkalmazások fejlesztése III Egy ablakos alkalmazás készítése I. C++ / Qt felhasználásával készítette: Szabóné Nacsa Rozália 1 Ajánlott irodalom Qt dokumentáció online: www.trolltech.com lokális
Információ megjelenítés Számítógépes ábrázolás. Dr. Iványi Péter
Információ megjelenítés Számítógépes ábrázolás Dr. Iványi Péter (adat szerkezet) float x,y,z,w; float r,g,b,a; } vertex; glcolor3f(0, 0.5, 0); glvertex2i(11, 31); glvertex2i(37, 71); glcolor3f(0.5, 0,
Egységes és objektumközpontú adatbázis-kezelés (2. rész)
Egységes és objektumközpontú adatbázis-kezelés (2. rész) A folytatásában a bemutatjuk, hogyan kezelhetünk Qt rendszer alatt SQL sormutatót, és készíthetünk grafikus felületet programoknak a Qt Designer
bool _freehand = false; QPoint _lastpoint; // ebben a pontban volt az utolsó rajzolásnál az egérmutató
canvas.h #pragma once #include #include #include #include #include #include #include // terület kiválasztáshoz struct RajzParameterek
Java Server Pages - JSP. Web Technológiák. Java Server Pages - JSP. JSP lapok életciklusa
Web Technológiák Java Server Pages - JSP Répási Tibor egyetemi tanársegéd Miskolc Egyetem Infomatikai és Villamosmérnöki Tanszékcsoport (IVM) Általános Informatikai Tanszék Iroda: Inf.Int. 108. Tel: 2101
21. évfolyam 4. szám. Fizika InfoRmatika Kémia Alapok. Kiadó. Levélcím 400750 Cluj, C. P. 1/140
Fizika InfoRmatika Kémia Alapok Kiadó Az Erdélyi Magyar Műszaki Tudományos Társaság kiadványa Szerkesztőbizottság Bíró Tibor, Farkas Anna, Dr. Gábos Zoltán, Dr. Karácsony János, Dr. Kaucsár Márton, Dr.
Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3)
Programozás alapjai C nyelv 7. gyakorlat Szeberényi Imre BME IIT Függvények C program egymás mellé rendelt függvényekből áll. A függvény (alprogram) jó absztrakciós eszköz a programok
Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)
Programozás alapjai C nyelv 7. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.11.05. -1- Függvények C program egymás mellé rendelt függvényekből
3D Számítógépes Geometria II.
3D Számítógépes Geometria II. 1. Bevezetés http://cg.iit.bme.hu/portal/3dgeo2 https://www.vik.bme.hu/kepzes/targyak/viiiav16 Dr. Várady Tamás, Dr. Salvi Péter BME, Villamosmérnöki és Informatikai Kar Irányítástechnika
ArcGIS 8.3 segédlet 5. Dr. Iványi Péter
ArcGIS 8.3 segédlet 5. Dr. Iványi Péter Térképek prezentálása Tartalomjegyzék Az elkészített analízis eredményeit, vagy egyszerűen magát a térképet prezentálni is kell. Ez azt jelenti, hogy össze kell
Számítógépes Graka - 4. Gyak
Számítógépes Graka - 4. Gyak Jámbori András andras.jambori@gmail.com 2012.03.01 Jámbori András andras.jambori@gmail.com Számítógépes Graka - 4. Gyak 1/17 Emlékeztet A múlt órákon tárgyaltuk: WinAPI programozás
Számítógépes Grafika mintafeladatok
Számítógépes Grafika mintafeladatok Feladat: Forgassunk a 3D-s pontokat 45 fokkal a X tengely körül, majd nyújtsuk az eredményt minden koordinátájában kétszeresére az origóhoz képest, utána forgassunk
Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe
Mechatronika és mikroszámítógépek 2017/2018 I. félév Bevezetés a C nyelvbe A C programozási nyelv A C egy általános célú programozási nyelv, melyet Dennis Ritchie fejlesztett ki Ken Thompson segítségével
Nincs szinkronizáció és kommunikáció Csővezeték alkalmazása Párhuzamosítás
Nincs szinkronizáció és kommunikáció Csővezeték alkalmazása Párhuzamosítás Proc Proc 2 Csővezeték Proc 2 Proc Párhuzamosság Proc 22 Alapműveletek Map Amplify Reduce Sum CPU Vertex Shader Vertexek + tulajdonságok:
Hálózati architektúrák laborgyakorlat
Hálózati architektúrák laborgyakorlat 10. hét Dr. Orosz Péter, Skopkó Tamás 2012. szeptember A Unix (C) socket A kommunikációt lehetővé tevő programozási eszköz UNIX fájlleíró (ld. minden egy fájl filozófia)
Számítógépes Grafika SZIE YMÉK
Számítógépes Grafika SZIE YMÉK Analóg - digitális Analóg: a jel értelmezési tartománya (idő), és az értékkészletes is folytonos (pl. hang, fény) Diszkrét idejű: az értelmezési tartomány diszkrét (pl. a
Pénzügyi algoritmusok
Pénzügyi algoritmusok A C++ programozás alapjai Tömbök (3. rész) Konstansok Kivételkezelés Tömbök 3. Többdimenziós tömbök Többdimenziós tömbök int a; Többdimenziós tömbök int a[5]; Többdimenziós tömbök
Objektumok inicializálása
Objektumok inicializálása Miskolci Egyetem Általános Informatikai Tanszék Objektumok inicializálása CPP4 / 1 Tartalom public adattagok inicializálása felsorolással konstruktor objektum tömbök osztály típusú
C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem
C# nyelv alapjai Krizsán Zoltán 1 Általános Informatikai Tanszék Miskolci Egyetem Objektumorientált programozás C# alapokon tananyag Tartalom Bevezetés Lokális változó Utasítások Szójáték Why do all real
x = cos αx sin αy y = sin αx + cos αy 2. Mi a X/Y/Z tengely körüli forgatás transzformációs mátrixa 3D-ben?
. Mi az (x, y) koordinátákkal megadott pont elforgatás uténi két koordinátája, ha α szöggel forgatunk az origó körül? x = cos αx sin αy y = sin αx + cos αy 2. Mi a X/Y/Z tengely körüli forgatás transzformációs
Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT
BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT Eddig Tetszőleges
Digitális technika VIMIAA01 9. hét
BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT Eddig Tetszőleges
Eseményvezérelt alkalmazások fejlesztése I 3. előadás. Dinamikus felületű alkalmazások. Giachetta Roberto
Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése I 3. előadás Dinamikus felületű alkalmazások Giachetta Roberto http://people.inf.elte.hu/groberto A felhasználói
Bevezetés a programozásba. 8. Előadás: Függvények 2.
Bevezetés a programozásba 8. Előadás: Függvények 2. ISMÉTLÉS Helló #include using namespace std; int main() cout
GPU Lab. 14. fejezet. OpenCL textúra használat. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc
14. fejezet OpenCL textúra használat Grafikus Processzorok Tudományos Célú Programozása Textúrák A textúrák 1, 2, vagy 3D-s tömbök kifejezetten szín információk tárolására Főbb különbségek a bufferekhez
500. CC Megoldó Alfréd CC 500.
Programozás alapjai 2. PótZH 2010.05.20. gyakorlat: G1/IB.146 Hiány:3 ZH:7,71 MEGOLD SCH/500. Hftest: 0 ZHp: Minden beadandó megoldását a feladatlapra, a feladat után írja! A megoldások során feltételezheti,
11. gyakorlat Sturktúrák használata. 1. Definiáljon dátum típust. Olvasson be két dátumot, és határozza meg melyik a régebbi.
11. gyakorlat Sturktúrák használata I. Új típus új műveletekkel 1. Definiáljon dátum típust. Olvasson be két dátumot, és határozza meg melyik a régebbi. typedef struct datum { int ev; int ho; int nap;
QLabel *label = new Qlabel("Hello Qt!",0);
#include #include int main(int argc,char **argv) QApplication app(argc,argv); QLabel *label = new Qlabel("Hello Qt!",0); app.setmainwidget(label); label->show(); return app.exec();
C++ Standard Template Library (STL)
Programozási Nyelvek és Fordítóprogramok Tanszék Programozási Nyelvek I. Témák 1 STL alapok 2 STL fogalmak 3 Konténerek 4 Iterátorok 5 Funktorok C++ STL Ne fedezzük fel újra spanyolviaszt! Sok adatszerkezet/algoritmus
Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double
Programozás alapjai C nyelv 4. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.10.10.. -1- Mit tudunk már? Típus fogalma char, int, float,
Robotika. Kinematika. Magyar Attila
Robotika Kinematika Magyar Attila amagyar@almos.vein.hu Miről lesz szó? Bevezetés Merev test pozíciója és orientációja Rotáció Euler szögek Homogén transzformációk Direkt kinematika Nyílt kinematikai lánc
Fejlett programozási nyelvek C++ Iterátorok
Fejlett programozási nyelvek C++ Iterátorok 10. előadás Antal Margit 2009 slide 1 Témakörök I. Bevezetés II. Iterátor definíció III. Iterátorok jellemzői IV. Iterátorkategóriák V. Iterátor adapterek slide
Bevezetés a programozásba Előadás: A const
Bevezetés a programozásba 2 6. Előadás: A const ISMÉTLÉS Interface - Implementation struct Particle { int x,y; unsigned char r,g,b; void rajzol(); }; }; void Particle::rajzol() { gout
Tisztelt Felhasználó!
Tisztelt Felhasználó! Az alábbiakban az NB termékek 3D modelljeinek generálása, használata kerül bemutatásra. A webes felület használatához regisztráció nem szükséges! Tartalomjegyzék Belépés... 2 Szükséges
QGIS. Tematikus szemi-webinárium Térinformatika. Móricz Norbert. Nemzeti Agrárkutatási és Innovációs Központ Erdészeti Tudományos Intézet (NAIK ERTI)
Tematikus szemi-webinárium Térinformatika Móricz Norbert Nemzeti Agrárkutatási és Innovációs Központ Erdészeti Tudományos Intézet (NAIK ERTI) Tartalom QGIS ismertető Vektor/raszter adatok elemzési lehetőségei
Raszter georeferálás QGIS-ben Összeállította: dr. Siki Zoltán verzióra aktualizálta: Jáky András
Raszter georeferálás QGIS-ben Összeállította: dr. Siki Zoltán 2.18.3. verzióra aktualizálta: Jáky András (jakyandras@gmail.com) Ez a leírás ahhoz nyújt segítséget, hogy szkennelt térképet vagy ortofotót
Elemi alkalmazások fejlesztése III
Elemi alkalmazások fejlesztése III Egyablakos alkalmazás készítése I. Qt/X11 felhasználásával Kdevelop környezetben készítette: Steingart Ferenc Szabóné Nacsa Rozália Ajánlott irodalom Qt dokumentáció
Bevezetés a programozásba. 11. Előadás: Esettanulmány
Bevezetés a programozásba 11. Előadás: Esettanulmány ISMÉTLÉS Függvényhívás #include #include #include #include using using namespace namespace std; std; double double
1. Alapok. Programozás II
1. Alapok Programozás II Elérhetőség Név: Smidla József Elérhetőség: smidla dcs.uni-pannon.hu Szoba: I916 2 Irodalom Bjarne Stroustrup: A C++ programozási nyelv 3 Irodalom Erich Gamma, Richard Helm, Ralph
OpenGL Compute Shader-ek. Valasek Gábor
OpenGL Compute Shader-ek Valasek Gábor Compute shader OpenGL 4.3 óta része a Core specifikációnak Speciális shaderek, amikben a szokásos GLSL parancsok (és néhány új) segítségével általános számítási feladatokat
Koordináta-geometria feladatgyűjtemény
Koordináta-geometria feladatgyűjtemény A feladatok megoldásai a dokumentum végén találhatók Vektorok 1. Egy négyzet két szemközti csúcsának koordinátái: A( ; 7) és C(4 ; 1). Határozd meg a másik két csúcs
QGIS Gyakorló. 1. kép: Koordináta levétel plugin bekapcsolása.
QGIS Gyakorló Verzió: 1.8.0 Trunk (Az 1.6 os verzió fejlesztői kiadása) Cím: Tagolt szöveg réteg hozzáadás; WKT - Well Known Text - opció. Minta fájl: http://www.box.net/shared/adayk6f5oy Az alábbiakban
Mintavételes szabályozás mikrovezérlő segítségével
Automatizálási Tanszék Mintavételes szabályozás mikrovezérlő segítségével Budai Tamás budai.tamas@sze.hu http://maxwell.sze.hu/~budait Tartalom Mikrovezérlőkről röviden Programozási alapismeretek ismétlés
Informatika terméktervezőknek
Informatika terméktervezőknek C# alapok Névterület (namespace) using Osztály (class) és Obejtumok Metódus (function, procedure, method) main() static void string[] arg Szintaxis // /* */ \n \t Névadások
Az ErdaGIS térinformatikai keretrendszer
Az ErdaGIS térinformatikai keretrendszer Két évtized tapasztalatát sűrítettük ErdaGIS térinformatikai keretrendszerünkbe, mely moduláris felépítésével széleskörű felhasználói réteget céloz, és felépítését
Feladat. Tervezés és implementálás
Tartalomjegyzék FELADAT...2 Elvárások...2 TERVEZÉS ÉS IMPLEMENTÁLÁS...2 Megjelenési terv...2 Grafikus felület készítése...3 Modulszerkezet...3 Osztály diagram...3 MillMain form...4 Vezérlő k elrendezése...4
Hajder Levente 2017/2018. II. félév
Hajder Levente hajder@inf.elte.hu Eötvös Loránd Tudományegyetem Informatikai Kar 2017/2018. II. félév Tartalom 1 A fény elektromágneses hullám Az anyagokat olyan színűnek látjuk, amilyen színű fényt visszavernek
Tartalom. Tartalom. Anyagok Fényforrás modellek. Hajder Levente Fényvisszaverési modellek. Színmodellek. 2017/2018. II.
Hajder Levente hajder@inf.elte.hu Eötvös Loránd Tudományegyetem Informatikai Kar 2017/2018. II. félév 1 A fény elektromágneses hullám Az anyagokat olyan színűnek látjuk, amilyen színű fényt visszavernek
Algoritmizálás + kódolás C++ nyelven és Pascalban
Algoritmizálás + kódolás nyelven és ban Motiváció A Programozási alapismeretek tárgyban az algoritmizáláshoz struktogramot, a kódoláshoz nyelvet használunk, a Közismereti informatikában (a közoktatásban
PHP alapjai, bevezetés. Vincze Dávid Miskolci Egyetem, IIT
alapjai, bevezetés Vincze Dávid Miskolci Egyetem, IIT vincze.david@iit.uni-miskolc.hu PHP Personal Home Page (Tools) Script nyelv -> interpretált Elsősorban weboldal (dinamikus) tartalmak előállítására
3. Gyors útmutató 4. Garanciakártya
A csomag tartalma 1. Prestigio webkamera főegység 2. Alkalmazás szoftver CD Használatvétel 3. Gyors útmutató 4. Garanciakártya 1. Kapcsolja be a PC-t, vagy notebookot. 2. Dugja be az USB csatolót a PC,
Realisztikus színtér 1 / 59
Realisztikus színtér 1 / 59 Környezet leképezés 2 / 59 Környezet leképezés Hatékony módszer görbe felületeken való tükröződés megjelenítésére Egy sugarat indít a nézőpontból a tükröződő objektum egy pontjába
C programozás. 6 óra Függvények, függvényszerű makrók, globális és
C programozás 6 óra Függvények, függvényszerű makrók, globális és lokális változók 1.Azonosítók A program bizonyos összetevőire névvel (azonosító) hivatkozunk Első karakter: _ vagy betű (csak ez lehet,
Bevezetés a C++ programozási nyelvbe
Miskolci Egyetem Általános Informatikai Tanszék Bevezetés a C++ programozási nyelvbe Oktatási segédlet Összeállította: Ficsor Lajos 2001. 1. A C++ programozási nyelv története A C++ programozási nyelv
Hálózat hidraulikai modell integrálása a Soproni Vízmű Zrt. térinformatikai rendszerébe
Hálózat hidraulikai modell integrálása a térinformatikai rendszerébe Hálózathidraulikai modellezés - Szakmai nap MHT Vízellátási Szakosztály 2015. április 9. Térinformatikai rendszer bemutatása Működési
Digitális technika (VIMIAA02) Laboratórium 1
BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika (VIMIAA02) Laboratórium 1 Fehér Béla Raikovich Tamás,
Alkalmazások fejlesztése III. Qt 4 /C++ alapú MDI alkalmazás: Számlakészítő program 3/3
Tartalomjegyzék Feladat...2 Az alkalmazás osztálydiagramja...2 Űrlap elkészítése...3 Grafikus felület kialakítása...3 A felületen elhelyezett elemek...3 invoiceform.h...3 invoiceform.cpp...5 Főablak elkészítése...11
Programozás alapjai C nyelv 5. gyakorlat. Írjunk ki fordítva! Írjunk ki fordítva! (3)
Programozás alapjai C nyelv 5. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.10.17. -1- Tömbök Azonos típusú adatok tárolására. Index
Digitális technika (VIMIAA02) Laboratórium 1
BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika (VIMIAA02) Laboratórium 1 Fehér Béla Raikovich Tamás,
1. fejezet Bevezetés a web programozásába (Balássy György munkája)... 11 Az internet működése... 11
Tartalomjegyzék 1. fejezet Bevezetés a web programozásába (Balássy György munkája)... 11 Az internet működése... 11 Géptől gépig... 11 Számok a gépeknek... 13 Nevek az embereknek... 14 Programok egymás
Információ megjelenítés Számítógépes ábrázolás. Dr. Iványi Péter
Információ megjelenítés Számítógépes ábrázolás Dr. Iványi Péter Raszterizáció OpenGL Mely pixelek vannak a primitíven belül fragment generálása minden ilyen pixelre Attribútumok (pl., szín) hozzárendelése
A Java nyelv. Dialógus ablakok. Elek Tibor
A Java nyelv Dialógus ablakok Elek Tibor Dialógus ablakok Szerepe: felbukkanó ablak (üzenet, input) Felépítése, használata majdnem ua., mint JFrame Tulajdonos: lehet tulajdonosa, amellyel együtt ikonizálódik,
A PROGAMOZÁS ALAPJAI 1. Függvény mint függvény paramétere. Függvény mint függvény paramétere. Függvény mint függvény paramétere
2012. április 10. A PROGAMOZÁS ALAPJAI 1 Vitéz András egyetemi adjunktus BME Híradástechnikai Tanszék vitez@hit.bme.hu Miről lesz ma szó? alaki szabályok használata - mintapélda használata - mintapélda
Véletlen szám generálás Labirintus felépítése 1x1-es felbontástól a teljes méretig
Véletlen szám generálás Labirintus felépítése 1x1-es felbontástól a teljes méretig Labirintusban egy kiindulási pontból az összes pontba legrövidebb út keresése Egy végállomásból elindulva visszafejteni