{"id":219,"date":"2010-07-14T15:09:11","date_gmt":"2010-07-14T15:09:11","guid":{"rendered":"http:\/\/www.tecn.upf.edu\/~jagenjo\/?p=219"},"modified":"2010-07-14T15:09:11","modified_gmt":"2010-07-14T15:09:11","slug":"infografia-i-practica-3-clipping","status":"publish","type":"post","link":"https:\/\/tamats.com\/upf\/?p=219","title":{"rendered":"Infograf\u00eda I: Pr\u00e1ctica 3: Clipping"},"content":{"rendered":"<p>Esta pr\u00e1ctica trata sobre clipping, es decir, el recorte de figuras geometricas dentro de un area. Es una pr\u00e1ctica m\u00e1s centrada en algoritmia y optimizaci\u00f3n, pensada para que los alumnos combinen matematicas con gr\u00e1ficos en un ejercicio sencillo.<\/p>\n<p>La pr\u00e1ctica consiste en recortar las lineas que introduzca el usuario para que encajen dentro del rectangulo de clipping, y descarte las que queden totalmente fuera. Esta tarea ya la realizan automaticamente los APIs gr\u00e1ficos como OpenGL sin embargo es bueno conocer los fundamentos b\u00e1sicos detras de las operaciones de optimizaci\u00f3n.<\/p>\n<h3><!--more--><\/h3>\n<h3>Material<\/h3>\n<ul>\n<li><a href=\"http:\/\/docs.google.com\/present\/view?id=dg932qn8_1882rf8r6hh\">Slides sobre el algoritmo de Cohen Sutherland<\/a><\/li>\n<li><a href=\"uploads\/practicas\/framework_prac3.zip\">Framework de la pr\u00e1ctica 3<\/a><\/li>\n<\/ul>\n<h3>Requisitos<\/h3>\n<p>Teneis que programar una aplicaci\u00f3n que primero permita introducir los dos puntos con el rat\u00f3n que definan el rectangulo de clipping, y a continuaci\u00f3n por cada par de puntos que se introduzca, muestre la linea que los une, siendo roja la parte que queda fuera del rectangulo, y verde la que queda dentro.<\/p>\n<ul>\n<li>Codigo en C o C++:\n<ul>\n<li>Implementar la funci\u00f3n Clipping<\/li>\n<li>Implementar la funci\u00f3n ComputeCode<\/li>\n<\/ul>\n<\/li>\n<li>Opcional\n<ul>\n<li>Poder reajustar el area de clipping conservando las lineas pintadas y ver como se recomputan sus segmentos.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>Fallos comunes<\/h3>\n<ul class=\"bad\">\n<li>No tener en cuenta el valor que ya tiene el codigo cuando se le cambia otro bit (sobreescribir el codigo entero en lugar de activar un unico bit).<\/li>\n<li>Incurrir en bucles infinitos debidos a fallos en el algoritmo.<\/li>\n<li>Definir la mascara de bits en binario en lugar de hacer en decial o hexadecimal (C++ no permite introducir valores en binario).<\/li>\n<\/ul>\n<div class=\"legend\">Valor: <strong>10 puntos<\/strong><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Esta pr\u00e1ctica trata sobre clipping, es decir, el recorte de figuras geometricas dentro de un area. Es una pr\u00e1ctica m\u00e1s centrada en algoritmia y optimizaci\u00f3n, pensada para que los alumnos combinen matematicas con gr\u00e1ficos en un ejercicio sencillo. La pr\u00e1ctica consiste en recortar las lineas que introduzca el usuario para que encajen dentro del rectangulo [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/tamats.com\/upf\/index.php?rest_route=\/wp\/v2\/posts\/219"}],"collection":[{"href":"https:\/\/tamats.com\/upf\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tamats.com\/upf\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tamats.com\/upf\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tamats.com\/upf\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=219"}],"version-history":[{"count":0,"href":"https:\/\/tamats.com\/upf\/index.php?rest_route=\/wp\/v2\/posts\/219\/revisions"}],"wp:attachment":[{"href":"https:\/\/tamats.com\/upf\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=219"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tamats.com\/upf\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=219"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tamats.com\/upf\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=219"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}