Source: http://arielivandiaz.blogspot.com/2016/
Timestamp: 2017-05-29 07:29:38+00:00

Document:
2016 ~ Blog de Ariel Ivan Diaz
Blog de Ariel Ivan Diaz
Sitio en cosntrucción
Simple Mouse Hook - Windows API en C
C/C++, WinAPI No hay comentarios
Este código es un Mouse Hook, el cual permite tomar el control del mouse a nuestro programa en C/C++ en Windows usando la API de Windows. Con esto podemos crear rutinas para automatizar rutinas en la PC. La demo esta hecha en Codeblocks, en Windows 10.
Es un código muy simple y bastante facil de entender, el mismo esta disponible en mi GitHub, pueden acceder desde http://github.com/arielivandiaz/WinAPI
Obtener el color de un pixel con el cursor
Con este programa, basando en el anterior código de leer la posición del mouse, podemos leer el color RGB del pixel en el que se encuentra el cursor en Windows.
Con este programa podemos mapear imágenes en la pantalla sin necesidad de abrirla desde un archivo, directamente ir muestreando los pixeles y aplicar algun tipo de algoritmo para procesar la imagen o el patrón. Repositorio:
https://github.com/arielivandiaz/WinAPI/blob/master/Get_Color_Pixel/main.cpp
Leer posición del Mouse mucho mas Simple
Con respecto a la entrada anterior sobre este tema, en esta nueva entrada encontré una forma mucho más sencilla de leer la posición del mouse en Windows.
Es un código mucho mas corto e intuitivo que funciona a la perfección.
https://github.com/arielivandiaz/WinAPI/blob/master/Mouse_Pos_2.0/main.c
* Mouse Position Simple
* @author Ariel Ivan Diaz
* @URL www.arielivandiaz.net
* \note Este programa immprime en consola la posicion del mouse
POINT mouse; //Estructura que contiene las coordenadas
HDC _hdc = GetDC(NULL);  //Crea el contexto
if(_hdc)
GetCursorPos(&amp;mouse);
printf("La posicion del mouse es %d ; %d \n", mouse.x,mouse.y);
Métricas de Algoritmo de Simulación de Partículas C/C++, HPC, SDL No hay comentarios
Basándose en el código del TP de CS267 de la Universidad de Berkeley, se busca evaluar la performance de este algoritmo de simulación de partículas en Serie, OpenMP y CUDA. Se compararon los resultados y se sacaron conclusiones.
https://www.academia.edu/26084761/M%C3%A9tricas_de_Algoritmo_de_Simulaci%C3%B3n_de_Part%C3%ADculas
https://github.com/javierip/parallel-code-examples/tree/master/10-projects/02-particles
Leer la posición del Mouse en Windows
Este programa imprime en consola las coordenadas en las que
se encuentra el puntero del mouse en la pantalla. Cada vez que se mueve el
mouse se actualiza la consola con la nueva posición y el programa se detiene
cuando se presiona Escape.
https://github.com/arielivandiaz/WinAPI/blob/master/Mouse_Position/main.cpp
Crear un Widget para insertar About.me en nuestra web
About.me, Blogger, HTML, Web No hay comentarios
Personalmente le tome mucho cariño a about.me por la posibilidad que brinda de ser una elegante tarjeta de presentación online en la que se pueden vincular todas nuestras redes sociales y demás. Después de varios años sin usarlo, volví hace poco para actualizar mi perfil y poder usarlo como presentación en mi blog. No existe un widget de about.me para insertar en Blogger, antes existía para Wordpress pero el nuevo diseño de about.me ya no lo permite. Es por eso que me tuve que tomar el trabajo e buscar una forma de adaptar mi “elegante” tarjeta de presentación para poder insertarla como un widget HTML/Javascript tanto para Blogger como para cualquier otra web, y procedo a compartir.
Sin más preámbulo el código utilizado se basa en crear un <iframe> que es una potente característica de HTML en la cual meter muchas cosas, en este caso embeber la web de about.me. El problema es que para que poder contener la web entera en un espacio pequeño hay que escalarla y setear bien las divisiones <div> de nuestra web para que todo encaje. Para todo esto recurrimos al siguiente código:
<iframe id="iframe" width="345" scrolling="no" height="1020" frameborder="0" src="http://about.me/arielivandiaz" style="
transform: scale(0.63); /*En general*/
-webkit-transform: scale(0.63); /*Para Chrome y Safari */
-ms-zoom: 0.63; /*Para Internet Explorer */
-moz-transform: scale(0.63); /*Para Firefox */
-o-transform: scale(0.63); /*Para Opera */
">&nbsp;</iframe>
Optimización de PSO utilizando OpenMP
C/C++, HPC No hay comentarios
este nuevo proyecto se busca optimizar el algoritmo de optimización por enjambre
de partículas, al hacerlo correr en paralelo mediante OpenMP.
Link presentación:
https://www.academia.edu/s/b7f403bf48
Análisis de Optimización por Enjambre de Partículas en Procesamiento Serie para Computación de Alta Performance
En este trabajo se estudia la ejecución del algoritmo estándar
de enjambre de partículas (Estándar PSO[1]) en su ejecución en serie para la resolución
de distintos problemas. Se realizaron pruebas en 3 plataformas muy distintas y
se obtuvieron resultados que se interpretaron en gráficas para realizar las correspondientes
La optimización por enjambre de partículas es un método para
la resolución de problemas basado en el comportamiento natural de partículas en
un espacio multidimensional. Este es un algoritmo muy utilizado para realizar
optimizaciones de grandes y complejos problemas científicos. Consiste en
distribuir de forma aleatoria un conjunto de partículas en un espacio y en el
cual se encuentra la función del problema que se está estudiando, y estas partículas
se moverán por el espacio interactuando entre ellas para ubicarse en torno a un
sector que representara la solución al problema.
La ejecución en serie de esta optimización permitirá realizar
las correspondientes evaluaciones de métricas de programa cuando se implemente
este en paralelo en un futuro proyecto. Este trabajo permitió entender que la solución
de cada problema puede optimizarse mejor mientras mejor sea el estudio que se
tiene sobre el problema y de que configuración se necesitaría para su optimización.
También que distintas plataformas y arquitecturas pueden resultar mejor para
ciertos casos, no solo para ciertos problemas sino para las distintas
configuraciones de optimización.
Se plantea entonces que para una aplicación seria de PSO se deberían
realizar pruebas para evaluar cuál sería el mejor camino para configurar la optimización
y así ahorrar tiempo de cálculo.
[1] http://www.particleswarm.info/Standard_PSO_2006.c
Trabajo Completo Pendiente de Publicación.
Imperial March with STM32F4 Discovery STM32F4 No hay comentarios
Algoritmo de backtracking recursivo y no recursivo para la resolución de un laberinto y su aplicación en SDL
Proyecto Final de Cátedra
UTN FRBB
En este proyecto se planteó como
problema la resolución de un laberinto mediante un programa en el cual se
apliquen los conocimientos obtenidos en la cátedra de Informática II. Para
cumplir este objetivo se tuvo en cuenta hacer énfasis en temas desarrollados en
clase, como el uso de árboles, dispositivos periféricos, programación orientada
a objetes e interfaz gráfica.
Para la resolución del laberinto se
desarrolló una función en base al algoritmo de backtracking, agregándole la
construcción de un árbol para mapear y almacenar la solución del laberinto. Dada la eficacia y simpleza de
este algoritmo recursivo, se optó por desarrollar una función alternativa de
backtracking usando iteración en lugar de recursividad. Se probaron ambas
funciones para medir su rendimiento, y se estudiaron los beneficios de usar una
Con el fin de darle un contexto a este
problema, se procedió a darle una interfaz gráfica para poder visualizar y
percibir la resolución del laberinto. Se escogió para este fin, usar las
bibliotecas SDL, y para aprovechar estas, se desarrolló un juego entre la
computadora ejecutando los algoritmos estudiados y el o los usuarios usando un
joystick para moverse dentro del laberinto.
https://www.academia.edu/4607412/Algoritmo_de_Backtracking_Recursivo_y_no_Recursivo_para_la_Resoluci%C3%B3n_de_un_Laberinto_y_su_Aplicaci%C3%B3n_en_SDL
Introducción a los Calculos Geoespaciales en C
C/C++ No hay comentarios
Trabajo Final de Cátedra
El objetivo de este proyecto es crear un programa que realice cálculos
geoespaciales, usando los contenidos aprendidos en la cátedra de Informática I,
de primer año, Ingeniería Electrónica. Dada la naturaleza del proyecto se debió
realizar una investigación sobre los conceptos geográficos, geodésicos y matemáticos para los cálculos astronómicos
implementados. La matemática utilizada se divide en dos áreas: los sistemas de representación
y el cálculo de la distancia entre dos puntos. Se aproximó la geometría de la
Tierra usando dos modelos: la Esfera y Elipsoide Terrestre. En el primer caso
la distancia se calcula usando la fórmula de Haversine[1] y en el segundo caso se utilizó la fórmula de
Vincenty[2]. Una vez analizados los conceptos necesarios se procedió
a desarrollar el programa e integrar las distintas fórmulas matemáticas como
algoritmos de programación. Finalmente se realizaron pruebas de comparación con
Este trabajo fue presentado en las 41° Jornadas Argentinas de Informática (JAIIO41) y obtuvo el segundo puesto en el Concurso de Trabajos Estudiantiles.
https://www.academia.edu/4607440/Introducci%C3%B3n_a_los_C%C3%A1lculos_Geoespaciales_en_C
C/C++, SDL No hay comentarios
Las siglas SDL significan Simple DirectMedia Layer, son un
conjunto de librerías desarrolladas en C y proporcionan funciones básicas para
realizar operaciones multimedia en espacios de dos dimensiones y para ir más
allá de estas dimensiones también ofrece la posibilidad de integrar OpenGL.
Brinda la posibilidad de una fácil gestión de sonido, imágenes, tipografías,
archivos y periféricos. Es un entorno diseñado para la programación de videojuegos, lo cual significa que tiene poca complejidad en cuanto a la programación, lo
cual permite crear una interfaz gráfica de una forma relativamente rápida y
sencilla en comparación por ejemplo a la utilización de la API de Windows.
SDL fue desarrollada inicialmente por Sam Lantinga, un
desarrollador de videojuegos para la plataforma GNU/Linux, y pese a estar
programado en C, tiene adaptaciones a otros lenguajes de programación como C++,
Ada, C#, BASIC, Erlang, Lua, Java,Python, etc. Una de sus grandes virtudes es
el tratarse de una biblioteca multiplataforma, siendo compatible oficialmente
con los sistemas Microsoft Windows, GNU/Linux,Mac OS y QNX, además de otras
arquitecturas y sistemas como Sega Dreamcast, GP32, GP2X. La biblioteca se
distribuye bajo la licencia LGPL, que es la que ha provocado el gran avance y
evolución de SDL.
La decisión de trabajar sobre estas librerías fue la posibilidad de crear interfaces gráficas en base de archivos de imágenes los cuales pueden ser diseñados, editados y actualizados de forma independiente, posibilitando una gran carga visual sin agregar complejidad al programa. También SDL permite un fácil manejo de un periférico que fue clave para varios de mis trabajos que es el Joystick USB, el cual en otro caso debería ser manejado por complicadas llamadas instrucciones de DirectInput (Librería de DirectX).
que tiene SDL en este programa es encargarse de gestionar el
joystick, simplificando la tarea al no tener que hacer complicadas llamadas
instrucciones de DirectInput (Librería de DirectX). En segunda medida se
encarga de la creación de la interfaz gráfica, la cual se gestiona de una forma muy simple
con unas simples llamadas a funciones y es independiente del sistema operativo
que usemos.
Métricas de Algoritmo de Simulación de Partículas Simple Mouse Hook - Windows API en C
Imperial March with STM32F4 Discovery Recent Posts
Métricas de Algoritmo de Simulación de Partículas
Crear un Widget para insertar About.me en nuestra ...
Análisis de Optimización por Enjambre de Partícula...
Imperial March with STM32F4 Discovery
Algoritmo de backtracking recursivo y no recursivo...
Ariel Ivan Diaz © 2016. Todos los derechos reservados. Con la tecnología de Blogger.
Copyright © Blog de Ariel Ivan Diaz | Powered by BloggerDesign by SimpleWpThemes | Blogger Theme by NewBloggerThemes.com | Distributed By Blogger Templates20

References: resolución

 resolución 
 resolución 
 resolución 
 resolución 
 resolución