From: <le...@us...> - 2007-02-14 11:19:22
|
Revision: 319 http://svn.sourceforge.net/qcell/?rev=319&view=rev Author: lessm Date: 2007-02-14 03:19:15 -0800 (Wed, 14 Feb 2007) Log Message: ----------- - LF changes Modified Paths: -------------- trunk/qcell/baseheaders/Renderer.h trunk/qcell/basesources/LocalFunction.cpp trunk/qcell/basesources/simulationwindow.cpp trunk/qcell/doc/licenciate_thesis/chap2/chap2.tex trunk/qcell/doc/licenciate_thesis/chap3/chap3.tex trunk/qcell/doc/licenciate_thesis/chap6/chap6.tex Modified: trunk/qcell/baseheaders/Renderer.h =================================================================== --- trunk/qcell/baseheaders/Renderer.h 2007-02-13 19:36:33 UTC (rev 318) +++ trunk/qcell/baseheaders/Renderer.h 2007-02-14 11:19:15 UTC (rev 319) @@ -2,8 +2,8 @@ #define _RENDERER_H #include "CalculationData.h" -#include "observer.xpm" -#include "zeropoint.xpm" +#include "../images/observer.xpm" +#include "../images/zeropoint.xpm" #include <QVector> #include <QColor> #include <QGLPixelBuffer> Modified: trunk/qcell/basesources/LocalFunction.cpp =================================================================== --- trunk/qcell/basesources/LocalFunction.cpp 2007-02-13 19:36:33 UTC (rev 318) +++ trunk/qcell/basesources/LocalFunction.cpp 2007-02-14 11:19:15 UTC (rev 319) @@ -233,17 +233,17 @@ { sumVector.clear(); elements = list[i].split(',', QString::SkipEmptyParts); - if (elements.size() == 1 && elements[0].toInt() == 0) - { - setSumArguments(QVector<int>()); - } - else - { +// if (elements.size() == 1 && elements[0].toInt() == 0) +// { +// setSumArguments(QVector<int>()); +// } +// else +// { for(int j=0;j<elements.size();++j) { sumVector.append((elements[j]).toInt()); } - } +// } if(!sumVector.isEmpty()) { if(i==0) @@ -770,7 +770,9 @@ if(sumArguments.size()==0) return 0; for(int i=0;i<sumArguments.size();++i) + { out *= sumArguments[i].size() * (maxArgVal - 1) + 1; + } return out; } Modified: trunk/qcell/basesources/simulationwindow.cpp =================================================================== --- trunk/qcell/basesources/simulationwindow.cpp 2007-02-13 19:36:33 UTC (rev 318) +++ trunk/qcell/basesources/simulationwindow.cpp 2007-02-14 11:19:15 UTC (rev 319) @@ -254,6 +254,21 @@ int simulationWindow::calculateDistans(int x, int y, int z, bool box) { + + float d1 = sqrt((float)((x - localObserverPosition[0]) * (x - localObserverPosition[0])) * (float)((y - localObserverPosition[1]) * (y - localObserverPosition[1])) * (float)((z - localObserverPosition[2]) * (z - localObserverPosition[2]))); + + + x += getStorage()->getSizeX()- 1 - localObserverPosition[0]; + y += getStorage()->getSizeY()- 1 - localObserverPosition[1]; + z += getStorage()->getSizeZ()- 1 - localObserverPosition[2]; + + if(x>=getStorage()->getSizeX()) + x -= getStorage()->getSizeX()-1; + if(y>=getStorage()->getSizeY()) + y -= getStorage()->getSizeY()-1; + if(z>=getStorage()->getSizeZ()) + z -= getStorage()->getSizeZ()-1; +/* if(box) { int mx = abs(localObserverPosition[0] - x), my = abs(localObserverPosition[1] - y), mz = abs(localObserverPosition[2] - z); @@ -261,7 +276,12 @@ return tmp > mz ? tmp : mz; } else - return sqrt((float)((x - localObserverPosition[0]) * (x - localObserverPosition[0])) * (float)((y - localObserverPosition[1]) * (y - localObserverPosition[1])) * (float)((z - localObserverPosition[2]) * (z - localObserverPosition[2]))); +*/ +// return sqrt((float)((x - localObserverPosition[0]) * (x - localObserverPosition[0])) * (float)((y - localObserverPosition[1]) * (y - localObserverPosition[1])) * (float)((z - localObserverPosition[2]) * (z - localObserverPosition[2]))); + + float d2 = sqrt((float)((x - (getStorage()->getSizeX()-1)) * (x - (getStorage()->getSizeX()-1))) * (float)((y - (getStorage()->getSizeY()-1)) * (y - (getStorage()->getSizeY()-1))) * (float)((z - (getStorage()->getSizeZ()-1)) * (z - (getStorage()->getSizeZ()-1)))); + + return d1<d2?d1:d2; } void simulationWindow::update2DTable(bool forceUpdate) @@ -403,6 +423,7 @@ bool needUpdate=0; int index; QString tmpString; + QStringList columnHeaders; SYMBOL symbol; QTableWidgetItem *item; table1D->blockSignals(1); @@ -418,7 +439,13 @@ table1DMem->setRowHeight(0, 30); for(int x=0;x<renderer->getStorage()->getSizeX();++x) + columnHeaders.append(tmpString.setNum(x)); + + table1D->setHorizontalHeaderLabels(columnHeaders); + table1DMem->setHorizontalHeaderLabels(columnHeaders); + for(int x=0;x<renderer->getStorage()->getSizeX();++x) { + index = renderer->getStorage()->getValueAt_i(x); if(index>=renderer->getSymbolCount()) index = renderer->getSymbolCount() - 1; Modified: trunk/qcell/doc/licenciate_thesis/chap2/chap2.tex =================================================================== --- trunk/qcell/doc/licenciate_thesis/chap2/chap2.tex 2007-02-13 19:36:33 UTC (rev 318) +++ trunk/qcell/doc/licenciate_thesis/chap2/chap2.tex 2007-02-14 11:19:15 UTC (rev 319) @@ -268,7 +268,7 @@ \begin{figure}[!hpt] \centering \includegraphics[width=10cm]{chap2/ddlab} -\caption{DDLab} +\caption{DDLab - obraz dynamiki globalnej} \label{fig:} \end{figure} @@ -283,7 +283,7 @@ \label{fig:} \end{figure} -Life32 jest symulatorem ukierunkowanym na regu\xB3y "Game of Life". Do g\xB3\xF3wnych zalet tej aplikacji nale\xBF\xB9 maksymalny rozmiar przetwarzanej konfiguracji kt\xF3ry ograniczony jest do planszy o rozmiarach 1000000 x 1000000, oraz du\xBFa pr\xEAdko\x9C\xE6 przetwarzania. Ograniczeniem pakietu jest to \xBFe umo\xBFliwia przetwarzanie konfiguracji binarnych. Symulator posiada mo\xBFliwo\x9C\xE6 wczytywania konfiguracji innych popularnych pakiet\xF3w. Przebieg symulacji obrazowany jest za pomoc\xB9 dwu wymiarowych plansz KB. Pakiet pozwala na konfiguracje kolor\xF3w kom\xF3rek. +Life32 jest symulatorem ukierunkowanym na regu\xB3y "Game of Life". Do g\xB3\xF3wnych zalet tej aplikacji nale\xBF\xB9 maksymalny rozmiar przetwarzanej konfiguracji kt\xF3ry ograniczony jest do planszy o rozmiarach 1000000 x 1000000, oraz du\xBFa pr\xEAdko\x9C\xE6 przetwarzania. Ograniczeniem pakietu jest to \xBFe umo\xBFliwia przetwarzanie jedynie konfiguracji binarnych. Symulator posiada mo\xBFliwo\x9C\xE6 wczytywania plik\xF3w innych popularnych pakiet\xF3w. Przebieg symulacji obrazowany jest za pomoc\xB9 dwu wymiarowych plansz KB. Pakiet pozwala na konfiguracje kolor\xF3w kom\xF3rek. \subsection{CelLab} \begin{figure}[!hpt] @@ -293,7 +293,7 @@ \label{fig:} \end{figure} -Pakiet CelLab wyr\xF3\xBFnia spo\x9Cr\xF3d innych symulator\xF3w mo\xBFliwo\x9C\xE6 definiowania w\xB3asnych funkcji lokalnych poprzez stworzenie kr\xF3tkiego programu w j\xEAzykach: Java, C, BASIC lub Pascal. Program jest ograniczony jedynie do w\xB3asnego formatu opisu konfiguracji modelu oblicze\xF1. Sk\xB3adowanie KB mo\xBFliwe jest do plik\xF3w jcp lub bitmapy. Inn\xB9 funkcj\xB9 niespotykan\xB9 w innych pakietach jest mo\xBFliwo\x9C\xE6 tworzenia plik\xF3w avi z zapisem przebiegu eksperymentu. Post\xEAp symulacji obrazowany jest w trybie graficznym z mo\xBFliwo\x9Cci\xB9 dostosowania kolorystyki symboli. +Pakiet CelLab wyr\xF3\xBFnia spo\x9Cr\xF3d innych symulator\xF3w mo\xBFliwo\x9C\xE6 definiowania w\xB3asnych funkcji lokalnych poprzez stworzenie kr\xF3tkiego programu w j\xEAzykach: Java, C, BASIC lub Pascal. Domy\x9Clnie program jest ograniczony jedynie do w\xB3asnego formatu opisu konfiguracji modelu oblicze\xF1. Sk\xB3adowanie KB mo\xBFliwe jest do plik\xF3w jcp lub bitmapy. Inn\xB9 funkcj\xB9 niespotykan\xB9 w innych pakietach jest mo\xBFliwo\x9C\xE6 tworzenia plik\xF3w avi z zapisem przebiegu eksperymentu. Post\xEAp symulacji obrazowany jest w trybie graficznym z mo\xBFliwo\x9Cci\xB9 dostosowania kolorystyki symboli. \subsection{WinLife} \begin{figure}[!hpt] @@ -307,7 +307,7 @@ \subsection {Por\xF3wnanie dost\xEApnych AK} -Przeprowadzona analiza funkcji szeroko znanych symulator\xF3w AK pokazuje i\xBF wi\xEAkszo\x9C\xE6 symulator\xF3w koncentruje si\xEA na obrazowaniu regu\xB3 z rodziny "Game of Life". Zakres wizualizacji ogranicza si\xEA do jedno i dwu wymiarowych AK w trybie graficznym z mo\xBFliwo\x9Cci\xB9 zmiany interpretacji symboli. W trakcie analizy dost\xEApnych symulator\xF3w AK nie stwierdzono wyposa\xBFenia symulator\xF3w w funkcje dynamicznego doboru modelu przetwarzania oraz mo\xBFliwo\x9Cci dowolnego definiowania s\xB9siedztwa. +Przeprowadzona analiza funkcji szeroko znanych symulator\xF3w AK pokazuje i\xBF wi\xEAkszo\x9C\xE6 symulator\xF3w koncentruje si\xEA na wizualizacji specyficznych . Zakres wizualizacji ogranicza si\xEA do jedno i dwu wymiarowych AK w trybie graficznym z mo\xBFliwo\x9Cci\xB9 zmiany interpretacji symboli. W trakcie analizy dost\xEApnych symulator\xF3w AK nie stwierdzono wyposa\xBFenia symulator\xF3w w funkcje dynamicznego doboru modelu przetwarzania oraz mo\xBFliwo\x9Cci dowolnego definiowania s\xB9siedztwa. Powszechnie stosuje si\xEA dwa rodzaje s\xB9siedztwa von Neumanna oraz Moora z mo\xBFliwo\x9Cci\xB9 modyfikacji s\xB9siad\xF3w. \begin{landscape} \begin{table}[!p] Modified: trunk/qcell/doc/licenciate_thesis/chap3/chap3.tex =================================================================== --- trunk/qcell/doc/licenciate_thesis/chap3/chap3.tex 2007-02-13 19:36:33 UTC (rev 318) +++ trunk/qcell/doc/licenciate_thesis/chap3/chap3.tex 2007-02-14 11:19:15 UTC (rev 319) @@ -22,7 +22,7 @@ \end{itemize} \subsubsection {Wizualizacja symulacji} -Program pozwala wizualizowa\xE6 symulatory LAK(tryb tekstowy), DAK(tryb testowy, tryb graficzny), TAK(tryb graficzny z dwoma typami perspektywy). +Program pozwala wizualizowa\xE6 symulatory LAK(tryb tekstowy), DAK(tryb testowy, tryb graficzny), TAK(tryb graficzny z dwoma trybami perspektywy). \subsection {Rozszerzone funkcje programu} \label{subsec:rfp} @@ -30,13 +30,12 @@ \subsubsection{Dynamiczne dobieranie modelu symulacji} \label{subsubsec:ddm} Program umo\xBFliwia dynamiczne dobieranie funkcji lokalnej podczas pracy symulatora. -uwzgl\xEAdnieniem lokalno\x9Cci obserwatora. \subsubsection{Edycja KI} Pakiet daje mo\xBFliwo\x9C\xE6 edycji konfiguracji bie\xBF\xB9cej oraz posiada zestaw narz\xEAdzi wspomagaj\xB9cych(wype\xB3nianie obszar\xF3w, kopiowanie/wklejanie obszar\xF3w). \subsubsection{Wymiana danych ze popularnymi pakietami} -Aplikacja umo\xBFliwia zapis/odczyt plik\xF3w w formacie lif. +Aplikacja umo\xBFliwia zapis/odczyt plik\xF3w w formacie "lif" i "life". \subsubsection {Tryby obserwatora} Aplikacja posiada funkcj\xEA prze\xB3\xB9czania trybu obserwatora. Dost\xEApne s\xB9 tryby lokalny i globalny. @@ -52,7 +51,7 @@ \item funkcja lokalna \begin{itemize} -\item FQT - Jest formatem pliku tekstowego, zawieraj\xB9cego w kolejnych wierszach: +\item FQT - Jest formatem pliku tekstowego s\xB3u\xBF\xB9cego do opisu funkcji lokalnej, zawieraj\xB9cego w kolejnych wierszach: \begin{itemize} \item identyfikator literowy typu funkcji \item trzy liczby (separowane spacj\xB9): liczba argument\xF3w, liczba warto\x9Cci argumentu i liczba warto\x9Cci funkcji Modified: trunk/qcell/doc/licenciate_thesis/chap6/chap6.tex =================================================================== --- trunk/qcell/doc/licenciate_thesis/chap6/chap6.tex 2007-02-13 19:36:33 UTC (rev 318) +++ trunk/qcell/doc/licenciate_thesis/chap6/chap6.tex 2007-02-14 11:19:15 UTC (rev 319) @@ -2,35 +2,37 @@ \label{chap:iop} \section{Interfejs programu} -W niniejszy rozdziale przedstawiony zosta\xB3 interfejs programu, instrukcja obs\xB3ugi oraz przyk\xB3adowy przebieg eksperymentu. +W niniejszy rozdziale przedstawiony zosta\xB3 interfejs programu, instrukcja obs\xB3ugi oraz przyk\xB3adowy przebieg wybranych eksperyment\xF3w obrazuj\xB9cych mo\xBFliwo\x9Cci funkcyjne pakietu. \begin{figure}[h] \centering \includegraphics[width=14cm]{chap6/mainwindow} -\caption{Widok g\xB3\xF3wny} +\caption{Obraz symulatora gotowego do pracy} \end{figure} \begin{enumerate} - \item Menu g\xB3\xF3wne - \item Zak\xB3adki funkcji - \item Pasek narz\xEAdzi - \item Widok zak\xB3adki + \item Menu g\xB3\xF3wne - zawiera podstawowe funkcje umo\xBFliwiaj\xB9ce operowanie na plikach opisu modelu oraz KI. + \item Zak\xB3adki funkcji - umo\xBFliwia nawigacji po trybach wizualizacji eksperymentu. + \item Pasek boczny - jest obszarem zarezerwowanym dla okien narz\xEAdzi + \item Widok zak\xB3adki - przedstawia obszar zarezerwowany dla wizualizacji wybranej funkcji pakietu. \end{enumerate} \subsection{Menu g\xB3\xF3wne} Obszar zawieraj\xB9cy menu pliku umo\xBFliwiaj\xB9ce wczytanie konfiguracji modelu AK z pliku, oraz przyciski wyboru trybu pracy symulatora. \subsubsection{File} +Menu File posiada nast\xEApuj\xB9ce pola: \begin{itemize} \item New - menu kreator\xF3w element\xF3w modelu AK -\item Open - menu wczytywania element\xF3w modelu AK +\item Open - menu wczytywania plik\xF3w opisu modelu AK \item Continue Experiment - wczytuje wcze\x9Cniej zapisany eksperyment -\item Save - zapis element\xF3w modelu AK -\item Save Experiment - zapis eksperymentu do pliku(N, FL, KI, kroki eksperymentu) +\item Save - zapis plik\xF3w opisu modelu AK +\item Save Experiment - zapis eksperymentu do pliku (N, FL, KI, kroki eksperymentu) \item Quit - wyj\x9Ccie z programu \end{itemize} \subsubsection{View} -Menu umo\xBFliwia ukrywanie/uaktywnianie narz\xEAdzi specjalizowanych dla poszczeg\xF3lnych funkcji +Menu umo\xBFliwia ukrywanie/uaktywnianie narz\xEAdzi specjalizowanych dla poszczeg\xF3lnych funkcji. + \subsubsection{Experiment} \begin{itemize} \item Start - uruchamia prace symulatora w trybie pracy ci\xB9g\xB3ej lub sekwencji krok\xF3w @@ -41,6 +43,7 @@ \item About - informacje o pakiecie \end{itemize} \subsubsection{Help} +Menu "Help" posiada jedynie pozycje "About wy\x9Cwietlaj\xB9c\xB9 informacje o pakiecie. \subsection{Zak\xB3adki funkcji} Zak\xB3adki funkcji umo\xBFliwiaj\xB9 nawigacj\xEA pomi\xEAdzy poszczeg\xF3lnymi trybami wizualizacji, a tak\xBFe pomi\xEAdzy narz\xEAdziami funkcji lokalnej, s\xB9siedztwa oraz symboli. @@ -231,38 +234,49 @@ \caption {Wczytywanie konfiguracji z plik\xF3w} \end{figure} -Do sterowania post\xEApem symulacji s\xB3u\xBFy pasek narz\xEAdzi symulacji zaznaczony na rysunku 6.10. +Aby wykona\xE6 kolejne kroi 6.10. \begin{figure}[!h] \centering \includegraphics[width=14cm]{chap6/step} -\caption {Iterowanie krok\xF3w} +\caption {Narz\xEAdzia iterowanie krok\xF3w} \end{figure} -Kolejne kroki symulacji przedstawiaj\xB9 rysunki 6.11 - 6.14 +\subsection{Podstawowy eksperyment 3D} +Poni\xBFsza +Rysunki 6.11 - 6.14 przedstawiaj\xB9 kolejne kroki symulacji. Po analizie por\xF3wnawczej zauwa\xBFy\xE6 mo\xBFna i\xBF widoczne obiekty zaklasyfikowa\xE6 mo\xBFna jako \xB3aziki. \begin{figure}[!h] \centering -\includegraphics[width=8cm]{chap6/iter1} +\includegraphics[width=4cm]{chap6/iter1} \caption {Krok 1} \end{figure} \begin{figure}[!h] \centering -\includegraphics[width=8cm]{chap6/iter2} +\includegraphics[width=4cm]{chap6/iter2} \caption {Krok 2} \end{figure} \begin{figure}[!h] \centering -\includegraphics[width=8cm]{chap6/iter3} +\includegraphics[width=4cm]{chap6/iter3} \caption {Krok 3} \end{figure} \begin{figure}[!h] \centering -\includegraphics[width=8cm]{chap6/iter4} +\includegraphics[width=4cm]{chap6/iter4} \caption {Krok 4} \end{figure} + +\subsection{Dynamiczne dobieranie modelu} +Poni\xBFszy przyk\xB3ad obrazuje spos\xF3b dynamicznego doboru modelu obliczeniowego. +Zadaniem docelowym jest okre\x9Cleni modelu umo\xBFliwiaj\xB9cego obrazowanie kolizji sygna\xB3\xF3w w przestrzeni 1D. Zak\xB3adamy \xBFe sygna\xB3y poruszaj\xB9 si\xEA z pr\xEAdko\x9Cci\xB9 V=1 w przeciwnych kierunkach oraz po kolizj\xB9 pr\xEAdko\x9C\xE6 i kierunek sygna\xB3\xF3w ma pozosta\xE6 bez zmian. Do przedstawienia kolizji niezb\xEAdny jest alfabetu o czterech symbolach oraz s\xB9siedztwo tr\xF3jelementowe. + +Rysunek {} przedstawia tablice funkcji nieokre\x9Clonej. Widzimy na i\xBF wszystkie pola tabeli oznaczone s\xB9 znakiem "?" oznaczaj\xB9cym symbol nieokre\x9Clony. + +Rysunek {} uwidacznia tablice funkcji lokalnej zawieraj\xB9cej minimaln\xB9 liczb\xEA okre\x9Clonych warto\x9Cci + % vim:fencs=cp1250:fenc=cp1250 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |