debian/0000755000000000000000000000000012207564112007166 5ustar debian/control0000644000000000000000000000171012207563761010601 0ustar Source: gvb Section: science Priority: optional Maintainer: Pietro Battiston Build-Depends: debhelper (>= 9) Build-Depends-Indep: python (>= 2.6.6-3~), python-setuptools (>= 0.6c8), python-distutils-extra (>= 2.38) Standards-Version: 3.8.4 Homepage: http://www.pietrobattiston.it/gvb Package: gvb Architecture: all Depends: ${misc:Depends}, ${python:Depends}, python-scipy (>= 0.6.0-8), python-cairo (>= 1.4.0-2), python-gnome2 Suggests: ffmpeg Description: visual simulator of 1 and 2-dimensional vibrations Good ViBrations (gvb) is a small program that aims at providing a nice interface to play with waves in 1 or 2 dimensions. . It features several ways of setting initial conditions, as well as different calculation methods and graphic outputs. It is also possible to dump animation frames to png images in order to make a movie with them. . It relies on the Python library scipy to get the best possible performance in calculations. debian/rules0000755000000000000000000000031412207563761010255 0ustar #!/usr/bin/make -f # -*- makefile -*- # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 # This has to be exported to make some magic below work. export DH_OPTIONS %: dh $@ --with python2 debian/patches/0000755000000000000000000000000012207563761010626 5ustar debian/patches/series0000644000000000000000000000001712207563761012041 0ustar fix-help.patch debian/patches/fix-help.patch0000644000000000000000000034172612207563761013400 0ustar Index: gvb-1.2.1/gvb =================================================================== --- gvb-1.2.1.orig/gvb 2013-07-23 13:50:33.685376031 -0400 +++ gvb-1.2.1/gvb 2013-07-23 13:50:33.673376031 -0400 @@ -374,17 +374,7 @@ self.about_window.connect('response', self.about_catcher) def show_help(self, *args): - if INSTALLED: - gnome.help_display_uri('ghelp:gvb') - else: - import locale - loc = locale.getdefaultlocale()[0] - if os.path.exists('%s/%s/gvb.xml' % (HELP_DIR, loc)): - gnome.help_display_uri('ghelp:%s/%s/gvb.xml' % (HELP_DIR, loc)) - elif os.path.exists('%s/%s/gvb.xml' % (HELP_DIR, loc.split('_')[0])): - gnome.help_display_uri('ghelp:%s/%s/gvb.xml' % (HELP_DIR, loc.split('_')[0])) - else: - gnome.help_display_uri('ghelp:%s/C/gvb.xml' % HELP_DIR) + gtk.show_uri(None, 'help:gvb', gtk.gdk.CURRENT_TIME) def change_steps(self, *args): self.steps_window = self.xml.get_object('steps') Index: gvb-1.2.1/help/C/gvb-C.omf =================================================================== --- gvb-1.2.1.orig/help/C/gvb-C.omf 2013-07-23 13:50:33.685376031 -0400 +++ /dev/null 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ - - - - - - toobaz@email.it (Pietro Battiston) - - - Good ViBrations Manual - - - 2009-11-11 - - - - - - - - - Index: gvb-1.2.1/help/C/gvb.xml =================================================================== --- gvb-1.2.1.orig/help/C/gvb.xml 2013-07-23 13:50:33.685376031 -0400 +++ /dev/null 1970-01-01 00:00:00.000000000 +0000 @@ -1,423 +0,0 @@ - - - - - -Good ViBrations"> - -]> - - -
- - - - Good ViBrations - - - 2009 - Pietro Battiston - - - - - Pietro Battiston (toobaz@email.it) - - - - This document is made available under the Creative Commons ShareAlike 3.0 License (CC-BY-SA). - This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE AS DESCRIBED IN THE DISCLAIMER. - A copy of the licence is available here. - - - - - - Pietro - Battiston - - GVB developer - - - - - - - - Gvb manual 1.0 - November 2009 - - Pietro Battiston toobaz@email.it - Pietro Battiston - - - - This manual describes version 1.2 of Good ViBrations (GVB). - - Feedback - To report a bug or make a suggestion regarding the Good ViBrations application or this manual, please use the project's Launchpad page. - - - - User manual for Good ViBrations. - - - - - - Good ViBrations - - - - - - - Introduction - Good ViBrations is an application that can simulate 1 and 2-dimensional vibrations. - - - Good ViBrations main window - The vast majority of Good ViBrations functionalities can be accessed directly from the main screen: -
- GVB main window - - - - - - Shows the GVB main window. - - - -
- - On the left, the main action area can be seen, where the simulation is visualized. - On the right are the various controls and indicators: press Start to see them in action. - - - Speed: sets the speed at which the simulation evolves. - - - Step: in those calculation methods which operate in discrete time (see for more info), this sets the time between an iteration and the following. Notice that the lower the value, the higher will be the precision of the simulation but also the computational effort required. - - - Below Step, is the counter, showing how many frames were calculated from the beginning of the simulation. - - - calculation ms. shows the milliseconds which were spent, on average, in calculations for each frame (in the last 2 seconds). - - - drawing ms. shows the milliseconds which were spent, on average, in graphically rendering each frame (in the last 2 seconds). - - - Rope and Membrane allow to switch between (respectively) 1 dimension and 2 dimensions simulations. Changing this will stop and reset the animation. - - - Below, the button Start now shows Stop: push it in order to stop the animation. - - - Calculation: sets the calculation method used. See for a list of methods and their descriptions. - - - Frames/second: sets the number of frames shown per second. Under 20, the animation can appear choppy, but over 25, almost no improvement should be noticed (and the computational effort will increase for calculation methods operating in continuous time). - - - Graphics: sets the drawing method used. See for a list of methods and their descriptions. - - - - Beware excessive precision! - Speed, Step and Frames/second are key parameters (together with the number of points used - see ) to determine the number of mathematical operations the computer must perform for each second of simulation: if excessive values are chosen, the animation may become choppy, or Good ViBrations may even freeze, becoming unresponsive. In this case, click Stop (only once): in most cases, the interface will be responsive again in few seconds. - -
- - - The <guimenu>File</guimenu> menu - The File menu lists some general operations: - - - FileOpen: open a disposition (the definition of points positions and speeds) from a file. - - - FileSave: save the disposition and speed of points to a file. - - - FileSave As: save the disposition and speed of points to a new file (if you still didn't save any disposition, this is equivalent to FileSave). - - - FileQuit: exit Good ViBrations. - - - - - - The <guimenu>Disposition</guimenu> menu - The Disposition menu allows to set the shape of the string or of the membrane at the start of the simulation. This can be done in two ways: - - - by choosing one of the precooked dispositions: a collection of them is available, in both 1 and 2 dimensions, - - - by opening the advanced editor, also available for both 1 and 2 dimensions (see ). - - - - - - The <guimenu>Options</guimenu> menu - The Options menu allows to configure some aspects of the simulation. - - - OptionsNumber of points: change the number of points used in the simulation (see ). - - - OptionsSave frames as png: if this checkbox is toggled, the animation will be saved to disk instead of being rendered to screen: see for more information. - - - - - - The <guimenu>Help</guimenu> menu - The Help menu can be used to access informations about the program. - - - HelpContents: open this help. - - - HelpAbout: show some informations about Good ViBrations. - - - - -
- - - - Changing the number of points - In Good ViBrations, the string and the membrane are approximated as some points connected by straight lines. The higher the number of points, the higher the quality of the simulation, but also number of computational operations required to perform it. To change the number of points, click OptionsNumber of points. - - - When this dialog is opened, the animation, if running, will automatically pause and, if the number of points is then indeed changed, will reset to its initial disposition, since Good ViBrations is not able to change the number of points of a running simulation. - - - - While in 1 dimension any number is equally acceptable, in 2 dimensions the points must be placed on a rectangular (and almost square) grid. If the number chosen does not fit, less points will be used. For instance, if the number of points chosen is 11, only 9 will be used (3×3), if it is 14, only 12 will be used (3×4). - - -When points are too many - - The number of points used is a key factor in determining the computational requirements to perform the simulation: performance may deteriorate very fast with their increase in number, and while some number between 100 and 150 should be acceptable on any computer, a number above those values may cause the interface to be unresponsive (depending also on the calculation method chosen - see - and on the value of the others parameters explained in ). - - - - - If you want to observe harmonics, some optimal number can be found in the following way: - - - take a number with many small factors, for instance 2×2×3=12, - - - substract 1: 11. - - - if you want to perform a bidimensional simulation, take its square: 11×11=121. - - - This example will allow you to observe optimally the second, fourth and third harmonics. - - - - - - - Drawing methods - Good ViBrations has three different ways of rendering a simulation, both in 1 and 2 dimensions, accessible through the drop-down box: - - - wave/3D the points are drawn at different heights (in perspective, if working in 2 dimensions), resulting in something indeed similar to a string or to a membrane; - - - speeds is similar to the former, but it also shows the current speed of each point, in the form of a red segment oriented in the direction of movement; - - - geo shows the heights as a geographical maps would show altitudes: points are represented by squares, with colours varying from dark blue (lowest points) to light blue, green, brown, dark brown and finally white (highest points). - - - - - - - - The advanced dispositions editor - By clicking Dispositions1 dimension: advanced or Dispositions2 dimensions: advanced, the advanced dispositions editor opens. This is a window that allows to configure the starting position of the string or of the membrane interactively, with much more freedom than by just taking one of the precooked dispositions. - -
- The advanced editor in 2 dimensions - - - - - - Shows the GVB advanced editor. - - - -
- - On the top, the Graphics drop-down box makes it possible to change the visualization of the disposition in the editor, similarly to what could be done in the main window. Notice that in this case there is no particular difference between wave/3D and speeds, since there is no speed involved. - The advanced editor works by tuning the parameters of given wave shapes and combining them. On the left, a preview of the disposition makes it possible to see changes as they are applied. On the right are the various controls that can be used to tune the shape until it is as desired. - - Dimension-speficic controls - - - Waveform: determines the form of the wave to use: can be sinusoidal, triangular, square or just a peak. - - - Total lenght: determines the fraction of the available space on which the new shape be applied. It defaults to all of it, but if for instance the cursor is halfway, the resulting shape will occupy only half of space of the simulation. - - - Shift: determines if the wave shape must start from the first point (default) or from some other point in the middle. Notice that if the wave shape is shifted, any part that overflows from the right/front border will by placed to the left/back, in a sort of rotation. - - - Wavelenght: determines the wavelenght of the wave, which is the space over which its shape repeats, or in other terms the distance between two subsequent peaks of it. It defaults to exactly the whole space, but its value can be tuned down to 4 times less and up to 4 times more. - - - Phase: determines the phase of the wave, which is the offset by which the waveform shifted. If Total lenght is set to the maximum, this has exactly the same effect of Shift; if however this is not the case, it can be used to shift/rotate the wave shape inside the range in which it is applied. - - - Amplitude: determines the amplitude of the wave, which is the vertical distance between its peaks and the rest line: defaults to the maximum, but can be reduced to scale down vertically the wave shape. - - - Centering: determines at which point the waveform must reach its peak: it defaults to the middle - resulting in a symmetric waveform - but can be moved left or right to increase the slope of the shape on the left of the peak and decrease it on the right, or vice versa. - - - Reflect: toggling this check substitutes the wave shape with its symmetric with respect to an horizontal axis in the middle. - - - Those listed so far are properties that are bound to a single dimension: hence, when working in 2 dimensions, two instances of each are available, one in the Horizontal column and one in the Vertical one, applying respectively to the left-right and to the back-front domain. - - - General controls - The other options that follow are instead general, applying to 1 or 2 dimensions. - - - Invert: toggling or untoggling this check inverts the wave shape, hence changing the height of every point through a reflection on the horizontal plane: what is above will go below, and vice versa. - - - Composition rule (only enabled when working in 2 dimensions): since the dimension-specific controls only result in the definition of two particular 1-dimensional wave shapes, which will be oriented one from left to right and one from back to front, here it is possible to establish how those two shapes must then be combined: - - product: each point's height will be the product of the heights given by the two shapes; - - sum: each point's height will be the sum of the heights given by the two shapes; - - maximum: each point's height will be the maximum value it takes among the two shapes; - - minimum: each point's height will be the minimum value it takes among the two shapes. - - - - - Add to current disposition: if the number of dimensions we are working in is the same as the one currently used in the main window's simulation, it is possible, by toggling this check, to sum the wave form just created to the current state of the simulation. This is a very powerful tool to get arbitrarily complex dispositions, by just adding one wave shape at a time, possibly each restricted to a particular section of the available space. - - - - On the bottom of the window, three buttons are available. - - - Revert resets all the regulations to their default values. - - - Cancel closes the window, discarding any change made. - - - Apply closes the window, applying all changes made. - - - - -
- - Calculation methods - Several calculation methods are available in Good ViBrations, and are accessible from the Calculation drop-down box in the main window. - - Warning, technical details! - This page contains a technically detailed list of the algorythms available in Good ViBrations, and as such it is probably not understandable to readers not practical with the mathematical concepts used. Since it's not necessary to be graduated in math to use Good ViBrations, here's a smaller and simpler summary: - - - naif: unprecise and slow, no real reason to ever use it; - - - naif matrix: identical to naif, but faster; - - - quad: more precise, but requires more computational power; - - - eig: less precise than quad for very short animations, but the most precise on the long run, since it will not introduce and amplify errors as time passes by: however, it must do some initial calculations, which may take a lot of time and make the program interface become unresponsive before the animation starts, if a high numbers of points is used. - - - - The more detailed list follows. - - - naif operates in discrete time: it calculates the position of a point at a given iteration roughly as the position in the previous iteration plus the speed in the previous iteration multiplied by the time elapsed (which is given by the parameter Step), and the speed at a given iteration as the difference between its height and the average height of the surrounding points at previous iteration. - - - naif matrix is identical to naif except it doesn't calculate the points singularly, but considers them as a vector, which is updated iteration after iteration through the multiplication by a proper matrix. It can be considered as a benchmark: comparing calculation times with naif's ones gives an idea of how much the underying scipy libraries for matrix computations are able to perform better than native Python code. - - - quad is similar to naif, except it doesn't linearize the calculation of speed, which is no more calculated as the simple difference in height with respect to the surrounding points, but instead takes in consideration the "real" distance, including the horizontal component. - - - eig operates in continuous time: it takes the linearized problem (as naif), but considers the associated system of differential equations, which is determined by a given matrix, of which it computes the exponential: for this step to be accomplished, it must calculate the eigenvalues and eigenvectors of it (through the scipy library). Once this calculation is done, it simply multiplies together the resulting matrix and the diagonal matrix given by the exponentials of the eigenvalues. - - - - - Saving frames as images - When OptionsSave frames as png is clicked, a dialog will open asking to choose a directory, and the frames will be saved in that directory as png images instead than being rendered to screen. This is useful when they are needed to create a video, or when the complexity of calculation involved is simply to high for them to be seen in real time. - Clicking it again will untoggle the checkbox, and the animation will start to be drawn again to screen. - An easy way to transform the produced images into a video is the following: - - - ensure the program ffmpeg is installed on your system, - - - open a terminal and move to the directory containing the images prepared with Good ViBrations, - - - give the command ffmpeg -i %08d.png video.mp4. - - - -
Index: gvb-1.2.1/help/C/index.docbook =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ gvb-1.2.1/help/C/index.docbook 2013-07-23 13:50:33.673376031 -0400 @@ -0,0 +1,423 @@ + + + + + +Good ViBrations"> + +]> + + +
+ + + + Good ViBrations + + + 2009 + Pietro Battiston + + + + + Pietro Battiston (toobaz@email.it) + + + + This document is made available under the Creative Commons ShareAlike 3.0 License (CC-BY-SA). + This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE AS DESCRIBED IN THE DISCLAIMER. + A copy of the licence is available here. + + + + + + Pietro + Battiston + + GVB developer + + + + + + + + Gvb manual 1.0 + November 2009 + + Pietro Battiston toobaz@email.it + Pietro Battiston + + + + This manual describes version 1.2 of Good ViBrations (GVB). + + Feedback + To report a bug or make a suggestion regarding the Good ViBrations application or this manual, please use the project's Launchpad page. + + + + User manual for Good ViBrations. + + + + + + Good ViBrations + + + + + + + Introduction + Good ViBrations is an application that can simulate 1 and 2-dimensional vibrations. + + + Good ViBrations main window + The vast majority of Good ViBrations functionalities can be accessed directly from the main screen: +
+ GVB main window + + + + + + Shows the GVB main window. + + + +
+ + On the left, the main action area can be seen, where the simulation is visualized. + On the right are the various controls and indicators: press Start to see them in action. + + + Speed: sets the speed at which the simulation evolves. + + + Step: in those calculation methods which operate in discrete time (see for more info), this sets the time between an iteration and the following. Notice that the lower the value, the higher will be the precision of the simulation but also the computational effort required. + + + Below Step, is the counter, showing how many frames were calculated from the beginning of the simulation. + + + calculation ms. shows the milliseconds which were spent, on average, in calculations for each frame (in the last 2 seconds). + + + drawing ms. shows the milliseconds which were spent, on average, in graphically rendering each frame (in the last 2 seconds). + + + Rope and Membrane allow to switch between (respectively) 1 dimension and 2 dimensions simulations. Changing this will stop and reset the animation. + + + Below, the button Start now shows Stop: push it in order to stop the animation. + + + Calculation: sets the calculation method used. See for a list of methods and their descriptions. + + + Frames/second: sets the number of frames shown per second. Under 20, the animation can appear choppy, but over 25, almost no improvement should be noticed (and the computational effort will increase for calculation methods operating in continuous time). + + + Graphics: sets the drawing method used. See for a list of methods and their descriptions. + + + + Beware excessive precision! + Speed, Step and Frames/second are key parameters (together with the number of points used - see ) to determine the number of mathematical operations the computer must perform for each second of simulation: if excessive values are chosen, the animation may become choppy, or Good ViBrations may even freeze, becoming unresponsive. In this case, click Stop (only once): in most cases, the interface will be responsive again in few seconds. + +
+ + + The <guimenu>File</guimenu> menu + The File menu lists some general operations: + + + FileOpen: open a disposition (the definition of points positions and speeds) from a file. + + + FileSave: save the disposition and speed of points to a file. + + + FileSave As: save the disposition and speed of points to a new file (if you still didn't save any disposition, this is equivalent to FileSave). + + + FileQuit: exit Good ViBrations. + + + + + + The <guimenu>Disposition</guimenu> menu + The Disposition menu allows to set the shape of the string or of the membrane at the start of the simulation. This can be done in two ways: + + + by choosing one of the precooked dispositions: a collection of them is available, in both 1 and 2 dimensions, + + + by opening the advanced editor, also available for both 1 and 2 dimensions (see ). + + + + + + The <guimenu>Options</guimenu> menu + The Options menu allows to configure some aspects of the simulation. + + + OptionsNumber of points: change the number of points used in the simulation (see ). + + + OptionsSave frames as png: if this checkbox is toggled, the animation will be saved to disk instead of being rendered to screen: see for more information. + + + + + + The <guimenu>Help</guimenu> menu + The Help menu can be used to access informations about the program. + + + HelpContents: open this help. + + + HelpAbout: show some informations about Good ViBrations. + + + + +
+ + + + Changing the number of points + In Good ViBrations, the string and the membrane are approximated as some points connected by straight lines. The higher the number of points, the higher the quality of the simulation, but also number of computational operations required to perform it. To change the number of points, click OptionsNumber of points. + + + When this dialog is opened, the animation, if running, will automatically pause and, if the number of points is then indeed changed, will reset to its initial disposition, since Good ViBrations is not able to change the number of points of a running simulation. + + + + While in 1 dimension any number is equally acceptable, in 2 dimensions the points must be placed on a rectangular (and almost square) grid. If the number chosen does not fit, less points will be used. For instance, if the number of points chosen is 11, only 9 will be used (3×3), if it is 14, only 12 will be used (3×4). + + +When points are too many + + The number of points used is a key factor in determining the computational requirements to perform the simulation: performance may deteriorate very fast with their increase in number, and while some number between 100 and 150 should be acceptable on any computer, a number above those values may cause the interface to be unresponsive (depending also on the calculation method chosen - see - and on the value of the others parameters explained in ). + + + + + If you want to observe harmonics, some optimal number can be found in the following way: + + + take a number with many small factors, for instance 2×2×3=12, + + + substract 1: 11. + + + if you want to perform a bidimensional simulation, take its square: 11×11=121. + + + This example will allow you to observe optimally the second, fourth and third harmonics. + + + + + + + Drawing methods + Good ViBrations has three different ways of rendering a simulation, both in 1 and 2 dimensions, accessible through the drop-down box: + + + wave/3D the points are drawn at different heights (in perspective, if working in 2 dimensions), resulting in something indeed similar to a string or to a membrane; + + + speeds is similar to the former, but it also shows the current speed of each point, in the form of a red segment oriented in the direction of movement; + + + geo shows the heights as a geographical maps would show altitudes: points are represented by squares, with colours varying from dark blue (lowest points) to light blue, green, brown, dark brown and finally white (highest points). + + + + + + + + The advanced dispositions editor + By clicking Dispositions1 dimension: advanced or Dispositions2 dimensions: advanced, the advanced dispositions editor opens. This is a window that allows to configure the starting position of the string or of the membrane interactively, with much more freedom than by just taking one of the precooked dispositions. + +
+ The advanced editor in 2 dimensions + + + + + + Shows the GVB advanced editor. + + + +
+ + On the top, the Graphics drop-down box makes it possible to change the visualization of the disposition in the editor, similarly to what could be done in the main window. Notice that in this case there is no particular difference between wave/3D and speeds, since there is no speed involved. + The advanced editor works by tuning the parameters of given wave shapes and combining them. On the left, a preview of the disposition makes it possible to see changes as they are applied. On the right are the various controls that can be used to tune the shape until it is as desired. + + Dimension-speficic controls + + + Waveform: determines the form of the wave to use: can be sinusoidal, triangular, square or just a peak. + + + Total lenght: determines the fraction of the available space on which the new shape be applied. It defaults to all of it, but if for instance the cursor is halfway, the resulting shape will occupy only half of space of the simulation. + + + Shift: determines if the wave shape must start from the first point (default) or from some other point in the middle. Notice that if the wave shape is shifted, any part that overflows from the right/front border will by placed to the left/back, in a sort of rotation. + + + Wavelenght: determines the wavelenght of the wave, which is the space over which its shape repeats, or in other terms the distance between two subsequent peaks of it. It defaults to exactly the whole space, but its value can be tuned down to 4 times less and up to 4 times more. + + + Phase: determines the phase of the wave, which is the offset by which the waveform shifted. If Total lenght is set to the maximum, this has exactly the same effect of Shift; if however this is not the case, it can be used to shift/rotate the wave shape inside the range in which it is applied. + + + Amplitude: determines the amplitude of the wave, which is the vertical distance between its peaks and the rest line: defaults to the maximum, but can be reduced to scale down vertically the wave shape. + + + Centering: determines at which point the waveform must reach its peak: it defaults to the middle - resulting in a symmetric waveform - but can be moved left or right to increase the slope of the shape on the left of the peak and decrease it on the right, or vice versa. + + + Reflect: toggling this check substitutes the wave shape with its symmetric with respect to an horizontal axis in the middle. + + + Those listed so far are properties that are bound to a single dimension: hence, when working in 2 dimensions, two instances of each are available, one in the Horizontal column and one in the Vertical one, applying respectively to the left-right and to the back-front domain. + + + General controls + The other options that follow are instead general, applying to 1 or 2 dimensions. + + + Invert: toggling or untoggling this check inverts the wave shape, hence changing the height of every point through a reflection on the horizontal plane: what is above will go below, and vice versa. + + + Composition rule (only enabled when working in 2 dimensions): since the dimension-specific controls only result in the definition of two particular 1-dimensional wave shapes, which will be oriented one from left to right and one from back to front, here it is possible to establish how those two shapes must then be combined: + + product: each point's height will be the product of the heights given by the two shapes; + + sum: each point's height will be the sum of the heights given by the two shapes; + + maximum: each point's height will be the maximum value it takes among the two shapes; + + minimum: each point's height will be the minimum value it takes among the two shapes. + + + + + Add to current disposition: if the number of dimensions we are working in is the same as the one currently used in the main window's simulation, it is possible, by toggling this check, to sum the wave form just created to the current state of the simulation. This is a very powerful tool to get arbitrarily complex dispositions, by just adding one wave shape at a time, possibly each restricted to a particular section of the available space. + + + + On the bottom of the window, three buttons are available. + + + Revert resets all the regulations to their default values. + + + Cancel closes the window, discarding any change made. + + + Apply closes the window, applying all changes made. + + + + +
+ + Calculation methods + Several calculation methods are available in Good ViBrations, and are accessible from the Calculation drop-down box in the main window. + + Warning, technical details! + This page contains a technically detailed list of the algorythms available in Good ViBrations, and as such it is probably not understandable to readers not practical with the mathematical concepts used. Since it's not necessary to be graduated in math to use Good ViBrations, here's a smaller and simpler summary: + + + naif: unprecise and slow, no real reason to ever use it; + + + naif matrix: identical to naif, but faster; + + + quad: more precise, but requires more computational power; + + + eig: less precise than quad for very short animations, but the most precise on the long run, since it will not introduce and amplify errors as time passes by: however, it must do some initial calculations, which may take a lot of time and make the program interface become unresponsive before the animation starts, if a high numbers of points is used. + + + + The more detailed list follows. + + + naif operates in discrete time: it calculates the position of a point at a given iteration roughly as the position in the previous iteration plus the speed in the previous iteration multiplied by the time elapsed (which is given by the parameter Step), and the speed at a given iteration as the difference between its height and the average height of the surrounding points at previous iteration. + + + naif matrix is identical to naif except it doesn't calculate the points singularly, but considers them as a vector, which is updated iteration after iteration through the multiplication by a proper matrix. It can be considered as a benchmark: comparing calculation times with naif's ones gives an idea of how much the underying scipy libraries for matrix computations are able to perform better than native Python code. + + + quad is similar to naif, except it doesn't linearize the calculation of speed, which is no more calculated as the simple difference in height with respect to the surrounding points, but instead takes in consideration the "real" distance, including the horizontal component. + + + eig operates in continuous time: it takes the linearized problem (as naif), but considers the associated system of differential equations, which is determined by a given matrix, of which it computes the exponential: for this step to be accomplished, it must calculate the eigenvalues and eigenvectors of it (through the scipy library). Once this calculation is done, it simply multiplies together the resulting matrix and the diagonal matrix given by the exponentials of the eigenvalues. + + + + + Saving frames as images + When OptionsSave frames as png is clicked, a dialog will open asking to choose a directory, and the frames will be saved in that directory as png images instead than being rendered to screen. This is useful when they are needed to create a video, or when the complexity of calculation involved is simply to high for them to be seen in real time. + Clicking it again will untoggle the checkbox, and the animation will start to be drawn again to screen. + An easy way to transform the produced images into a video is the following: + + + ensure the program ffmpeg is installed on your system, + + + open a terminal and move to the directory containing the images prepared with Good ViBrations, + + + give the command ffmpeg -i %08d.png video.mp4. + + + +
Index: gvb-1.2.1/help/it/gvb.xml =================================================================== --- gvb-1.2.1.orig/help/it/gvb.xml 2013-07-23 13:50:33.685376031 -0400 +++ /dev/null 1970-01-01 00:00:00.000000000 +0000 @@ -1,420 +0,0 @@ - - - - - -Good ViBrations"> - -]> - - -
- - - - Good ViBrations - - - 2009 - Pietro Battiston - - - - - Pietro Battiston (toobaz@email.it) - - - - Questo documento è rilasciato sotto una licenza Creative Commons ShareAlike 3.0 (CC-BY-SA). - Questo documento è distribuito nella speranza che sia utile, ma SENZA ALCUNA GARANZIA: senza neanche la garanzia implicita di COMMERCIABILITÀ o di APPLICABILITÀ PER UN PARTICOLARE SCOPO. - Una copia della licenza è disponibile qui. - - - - - - Pietro - Battiston - - Sviluppatore di GVB - - - - Pietro - Battiston - - Sviluppatore di GVB - toobaz@email.it - - Traduzione italiana - - - - - - Manuale 1.0 di Gvb - Novembre 2009 - - Pietro Battiston toobaz@email.it - Pietro Battiston - - - - Questo manuale descrive la versione 1.2 di Good ViBrations (GVB). - - Feedback - Per segnalare un bug o dare suggerimenti riguardanti il programma Good ViBrations o questo manuale, si prega di utilizzare la pagina su Launchpad del progetto. - - - - Manuale utente di Good ViBrations. - - - - - - Good ViBrations - - - - - - - Introduzione - Good ViBrations (letteralmente, "buone vibrazioni" in italiano) è un'applicazione per simulare vibrazioni in 1 e 2 dimensioni. - - - Finestra principale di Good ViBrations - La maggioranza delle funzionalità di Good ViBrations è accessibile direttamente dalla schermata principale: -
- Finestra principale di GVB - - - - - - Mostra la finestra principale di GVB. - - - -
- - Sulla sinistra, si può vedere l'area di visualizzazione principale, in cui si svolge la simulazione. - Sulla destra si trovano le varie regolazioni e gli indicatori: premere Parti per vederli in azione. - - - Velocità: imposta la velocità a cui si svolge la simulazione. - - - Passo: per quei metodi di calcolo che operano in tempo discreto (si veda (see per informazioni), permette di impostare il tempo trascorso tra un'iterazione e la successiva. Più questo valore è basso, maggiore sarà la precisione della simulazione, ma anche il costo computazionale. - - - Sotto a Passo si trova il contatore, che mostra quanti fotogrammi sono stati calcolati dall'inizio della simulazione. - - - ms. di calcolo riporta la media dei millisecondi spesi per calcolare ogni nuovo fotogramma (negli ultimi 2 seconds). - - - ms. di disegno riporta la media dei millisecondi spesi per disegnare ogni nuovo fotogramma (negli ultimi 2 secondi). - - - Corda e Superficie permettono di passare a simulazioni in (rispettivamente) 1 e 2 dimensioni. Cambiando questa impostazione, l'animazione sarà fermata e riavviata. - - - Sotto, il pulsante Start riporta ora la scritta Ferma: premendolo, l'animazione si arresterà. - - - Metodo di calcolo: imposta il metodo di calcolo utilizzato. Si veda per una lista dei metodi e le rispettive descrizioni. - - - Fotogramma/secondo: imposta il numero di fotogrammi visualizzati al secondo. Sotto i 20, l'animazione può essere scattosa, ma sopra i 25 non si dovrebbe notare quasi alcuna differenza (ed il costo computazionale salirà per i metodi che operano in tempo continuo). - - - Grafica: imposta il metodo di visualizzazione. Si veda per una lista dei metodi e le rispettive descrizioni. - - - - Troppa precisione può far male! - Velocità, Passo e Fotogrammi/secondo sono parametri fondamentali (insieme al numero di punti utilizzati - si veda ) nel determinare la quantità di operazioni matematiche che il computer deve effettuare ogni secondo: se sono scelti valori eccessivi, l'animazione può diventare scattosa, o addirittura Good ViBrations può bloccarsi. In questa eventualità, cliccare Ferma (solo una volta): nella maggior parte dei casi, l'interfaccia tornerà alla normalità in pochi secondi. - -
- - - Il menu <guimenu>File</guimenu> - Il menu File elenca alcune operazioni generali: - - - FileApri: apre una disposizione (ovvero la descrizione dei punti e delle loro velocità) da un file. - - - FileSalva: salva la disposizione dei punti e le loro velocità in un file. - - - FileSalva come: salva la disposizione dei punti e le loro velocità in un nuovo file (se non si è ancora salvata alcuna disposizione, questa opzione è equivalente a FileSalva). - - - FileEsci: esci da Good ViBrations. - - - - - - Il menu <guimenu>Disposizioni</guimenu> - Il menu Disposizioni permette di impostare la forma della corda o della membrana all'inizio della simulazione. Ci sono due modi di farlo: - - - scegliendo una delle disposizioni precotte: ne è disponibile una collezione, sia in 1 che in 2 dimensioni, - - - avviando l'editor avanzato, anche questo disponibile per 1 e 2 dimensioni (si veda ). - - - - - - Il menu <guimenu>Opzioni</guimenu> - Il menu Opzioni permette di configurare alcuni aspetti della simulazione. - - - OpzioniNumero di punti: cambia il numero di punti utilizzati nella simulazione (si veda ). - - - OpzioniSalva i fotogrammi come png: se questa casellina è spuntata, l'animazione verrà salvata su disco invece di essere resa sullo schermo: si veda per informazioni. - - - - - - Il menu <guimenu>Aiuto</guimenu> - Il menu Aiuto permette di accedere ad informazioni riguardanti il programma. - - - AiutoSommario: apri questo manuale. - - - AiutoInformazioni: mostra alcune informazioni su Good ViBrations. - - - - -
- - - - Cambiare il numero di punti - In Good ViBrations, la corda e la membrana sono approssimate come un certo numero di punti connessi da segmenti diritti. Maggiore è il numero di punti, maggiore sarà la qualità della simulazione, ma crescerà anche il numero di operazioni di calcolo necessarie per effettuarla. Per cambiare il numero di punti, selezionare OpzioniNumero di punti. - - - Una volta aperta questa finestra di dialogo, l'animazione, se attiva, si fermerà automaticamente e, se il numero di punti viene effettivamente cambiato, sarà riportata alla posizione iniziale, dato che Good ViBrations non è in grado di cambiare il numero di punti di una simulazione durante il suo svolgimento. - - - - Mentre in 1 dimensione un numero può valere l'altro, in 2 dimensioni i punti devono essere disposti lungo una griglia rettangolare (quasi quadrata). Se il numero scelto non è adatto, ne saranno utilizzati meno. Ad esempio, se il numero di punti scelto è 11, ne verranno utilizzati solo 9 (3×3); se è 14, ne verranno utilizzati solo 12 (3×4). - - -Quando i punti sono troppi - - Il numero di punti utilizzati è un parametro fondamentale per determinare il costo computazionale della simulazione: l'efficienza può peggiorare molto con il loro incremento, e mentre un numero tra 100 e 150 dovrebbe essere accettabile su qualsiasi computer, un numero superiore a questi livelli può far sì che l'interfaccia si blocchi (a seconda anche del metodo di calcolo scelto - si veda - e del valore degli altri parametri descritti in ). - - - - - Per osservare le armoniche, si può trovare il numero più adatto in questo modo: - - - prendere un numero con molti fattori piccolo, come ad esempio 2×2×3=12, - - - sottrarre 1: 11. - - - se si vuole effettuare una simulazione in 2 dimensioni, prenderne il quadrato: 11×11=121. - - - In questo esempio, sarà possibile osservare in modo ottimale le armoniche seconda, quarta e terza. - - - - - - - Metodi di disegno - Good ViBrations ha tre diversi modi di visualizzare una simulazione, sia in 1 che in 2 dimensioni, accessibili tramite la casella di scelta: - - - wave/3D i punti sono disegnati ad altezze diverse (in prospettiva se si sta lavorando in 2 dimensioni), formando qualcosa di effettivamente simile ad una corda o ad una membrana; - - - speeds è simile al precedente, ma mostra anche la velocità istantanea di ogni punto, sotto forma di un segmento rosso orientato nella direzione del movimento; - - - geo mostra le altezze similmente a come le mappe geografiche mostrano le altitudini: i punti sono rappresentati da quadratini, con colori che variano dal blu scuro (i punti più in basso) a blu chiaro, verde, marrone, marrone scuro ed infine bianco (i punti più alti). - - - - - - - - L'editor avanzato di disposizioni - Selezionando Disposizioni1 dimensione: avanzato o Disposizioni2 dimensioni: avanzato, si accede all'editor avanzato di disposizioni. È una finestra che permette di configurare la posizione di partenza della corda o della membrana interattivamente, con molta più libertà di scelta che accontentandosi di una delle disposizioni precotte. - -
- L'editor avanzato in 2 dimensioni - - - - - - Mostra l'editor avanzato GVB. - - - -
- - In cima, la casella di scelta Grafica permette di cambiare la visualizzazione della disposizione all'interno dell'editor, un po' come nella finestra principale. Si noti che in questo caso non c'è particolare differenza tra wave/3D e speeds, dato che non si sta considerando alcuna velocità. - L'editor avanzato si utilizza regolando i parametri di certe forme d'onda e combinandole. Sulla sinistra, si può vedere un'anteprima della disposizione mano a mano che le modifiche sono applicate. Sulla destra si trovano le varie regolazioni per modificare la forma fino a raggiungere quella desiderata. - - Regolazioni per una dimensione specifica - - - Forma d'onda: stabilisce la forma base della onda da usare: può essere sinusoidale, triangolare, quadrata o un semplice picco. - - - Lunghezza d'onda: stabilisce la frazione dello spazio disponibile che la nuova forma deve occupare. Il valore iniziale è "tutta"; se ad esempio il cursore viene spostata a metà corsa, la forma risultante occuperà solo metà dell'intero spazio della simulazione. - - - Spostamento: stabilisce se la forma deve partire dal primo punto (è il valore di default) o da un qualche altro punto nel mezzo. Si noti che se l'onda è spostata fino a superare il limite dello spazio totale, la parte in eccesso dalla parte destra/anteriore viene aggiunta dalla parte sinistra/posteriore, in una sorta di rotazione. - - - Lunghezza d'onda: stabilisce la lunghezza d'onda della forma base, ovvero lo spazio occupato da una sua ripetizione completa, o in altre parole la distanza tra due picchi successivi. Il valore iniziale è esattamente lo spazio disponibile, ma lo si può accrescere fino a 4 volte tanto e diminuire fino a 4 volte meno. - - - Fase: stabilisce la fase dell'onda, ovvero la traslazione che viene effettuata alla forma base. Se Lunghezza totale ha il valore massimo, l'effetto di questa regolazione è esattamente lo stesso di Spostamento; se invece così non è, può essere utilizzata per traslare/ruotare la forma d'onda all'interno dell'intervallo di applicazione. - - - Ampiezza: stabilisce l'ampiezza dell'onda, ovvero la distanza verticale tra un picco e la linea di riposo: il valore di default è il massimo; se ridotto, tutta la forma d'onda viene riscalata verticalmente. - - - Centratura: stabilisce a che punto la forma d'onda deve raggiungere il picco massimo: normalmente è posto a metà, e la forma d'onda e simmetrica; spostandolo a sinistra aumenterà la pendenza della forma d'onda a sinistra ed aumenterà a destra, e viceversa spostandolo a destra. - - - Rifletti: selezionando questa casella, la forma d'onda viene riflessa rispetto ad un asse verticale posto a metà. - - - Quelle elencate sono proprietà legate ad una singola dimensione: quando si lavora in 2 dimensioni, ognuna di esse è ripetuta due volte, una nella colonna Orizzontale ed una in quella Verticale, e riguarda rispettivamente il dominio sinistra-destra e quello dietro-avanti. - - - Controlli generali - Le altre opzioni che seguono invece si applicano genericamente ad 1 o 2 dimensioni. - - - Inverti: selezionando questa casella, la forma d'onda è invertita, ovvero ogni punto viene riflesso rispetto ad un piano orizzontale: ciò che è sotto andrà sopra e viceversa. - - - Regola di composizione (solo in 2 dimensioni): dato che le regolazioni legate ad una singola dimensione permettono di forgiare solo due particolari forme d'onda monodimensionali, che verranno orientate rispettivamente da sinistra a destra e da dietro a davanti, è qui possibile stabilire come queste forme dovranno combinarsi: - - prodotto: l'altezza di ogni punto sarà il prodotto delle altezze date dalle due forme d'onda; - - somma: l'altezza di ogni punto sarà la somma delle altezze date dalle due forme d'onda; - - massimo: l'altezza di ogni punto sarà il valore massimo assunto tra le due forme d'onda; - - minimo: l'altezza di ogni punto sarà il valore minimo assunto tra le due forme d'onda. - - - - - Aggiungi alla posizione attuale: se il numero di dimensioni in cui stiamo lavorando è lo stesso utilizzato nella simulazione nella finestra principale, è possibile, selezionando questa casella, sommare la forma d'onda che si sta creando con lo stato corrente della simulazione. Ciò fornisce uno strumento molto potente per creare disposizioni arbitrariamente complesse, semplicemente aggiungendo una forma d'onda alla volta, eventualmente ognuna ristretta ad una parte soltanto dello spazio disponibile. - - - - In fondo alla finestra, sono presenti tre pulsanti. - - - Ripristina riassegna ad ogni regolazione il suo valore iniziale. - - - Annulla chiude la finestra, annullando ogni modifica fatta. - - - Applica chiude la finestra, rendendo effettive le modifiche. - - - - -
- - Metodi di calcolo - Good ViBrations mette a disposizione diversi metodi di calcolo, accessibili dal menu a scelta Metodi ci calcolo, nella finestra principale. - - Attenzione, dettagli tecnici! - Questa pagina contiene una lista dettagliata dei vari algoritmi disponibili Good ViBrations e dei loro aspetti tecnici; in quanto tale, potrebbe non essere comprensibile a chi non fosse abituato ai concetti matematici adoperati. Siccome Good ViBrations non è fatto solo per i laureati in matematica, ecco un riassunto più sintetico: - - - naif: spreciso e lento, non c'è nessun motivo reale di utilizzarlo; - - - naif matrix: identico a naif, ma più veloce; - - - quad: più preciso, ma anche più pesante dal punto di vista dei calcoli necessari; - - - eig: meno preciso di quad per animazioni molto brevi, ma il migliore a lungo termine, dato che non introduce o amplifica errori con il passare del tempo: tuttavia, deve effettuare alcuni calcoli iniziali, che potrebbero richiedere molto tempo e bloccare l'interfaccia prima dell'inizio dell'animazione se il numero di punti utilizzato è alto. - - - - Quella che segue è la lista più dettagliata. - - - naif opera in tempo discreto: calcola la posizione di un punto ad una data iterazione grosso modo come la posizione nell'iterazione precedente più la velocità nell'iterazione precedente, moltiplicata per il tempo trascorso (che è dato dal parametro Passo), e la velocità in una data iterazione come la differenza tra la sua altezza e l'altezza media dei punti circostanti nell'iterazione precedente. - - - naif matrix è identico a naif, tranne che non calcola i punti uno alla volta, ma li tratta come un vettore, che è aggiornato iterazione dopo iterazione moltiplicandolo per una matrice data. Lo si può considerare un test di riferimento: paragonare i tempi di calcolo con quelli di naif dà l'idea di quanto le librerie scipy utilizzate per i calcoli matriciali siano più efficienti del semplice codice Python. - - - quad è simile a naif, tranne che non linearizza il calcolo della velocità: essa non è più la semplice differenza in altezza rispetto ai punti circostanti, ma prende in considerazione la distanza "vera", compresa la componente orizzontale. - - - eig opera in tempo continuo: prende il problema linearizzato (come naif), ma considera il sistema associato di equazioni differenziali, che è definito da una certa matrice, di cui calcola l'esponenziale: per effettuare questa operazione, deve calcolarne gli autovalori ed autovettori (grazie alla libreria scipy). Una volta finito questo calcolo, non fa altro che moltiplicare tra di loro la matrice risultante e la matrice diagonale data dagli esponenziali degli autovalori. - - - - - Salvare i fotogrammi come immagini - Selezionando OpzioniSalva fotogrammi come png, si aprirà una finestra di dialogo in cui sarà possibile scegliere una cartella, ed i fotogrammi saranno quindi salvati in quella cartella come immagini png, invece di essere visualizzati sullo schermo. Questa funzionalità è comoda per creare un video, o quando la complessità dei calcoli richiesti è eccessiva per una visualizzazione in tempo reale. - Deselezionando la casellina, l'animazione riprenderà ad essere visualizzata sullo schermo. - Un modo semplice per trasformare le immagini così prodotte in un video è il seguente: - - - assicurarsi che il programma ffmpeg sia installato nel sistema, - - - aprire un terminale e spostarsi nella cartella contentente le immagini preparate con Good ViBrations, - - - dare il comando ffmpeg -i %08d.png video.mp4. - - - -
Index: gvb-1.2.1/help/it/index.docbook =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ gvb-1.2.1/help/it/index.docbook 2013-07-23 13:50:33.677376031 -0400 @@ -0,0 +1,420 @@ + + + + + +Good ViBrations"> + +]> + + +
+ + + + Good ViBrations + + + 2009 + Pietro Battiston + + + + + Pietro Battiston (toobaz@email.it) + + + + Questo documento è rilasciato sotto una licenza Creative Commons ShareAlike 3.0 (CC-BY-SA). + Questo documento è distribuito nella speranza che sia utile, ma SENZA ALCUNA GARANZIA: senza neanche la garanzia implicita di COMMERCIABILITÀ o di APPLICABILITÀ PER UN PARTICOLARE SCOPO. + Una copia della licenza è disponibile qui. + + + + + + Pietro + Battiston + + Sviluppatore di GVB + + + + Pietro + Battiston + + Sviluppatore di GVB + toobaz@email.it + + Traduzione italiana + + + + + + Manuale 1.0 di Gvb + Novembre 2009 + + Pietro Battiston toobaz@email.it + Pietro Battiston + + + + Questo manuale descrive la versione 1.2 di Good ViBrations (GVB). + + Feedback + Per segnalare un bug o dare suggerimenti riguardanti il programma Good ViBrations o questo manuale, si prega di utilizzare la pagina su Launchpad del progetto. + + + + Manuale utente di Good ViBrations. + + + + + + Good ViBrations + + + + + + + Introduzione + Good ViBrations (letteralmente, "buone vibrazioni" in italiano) è un'applicazione per simulare vibrazioni in 1 e 2 dimensioni. + + + Finestra principale di Good ViBrations + La maggioranza delle funzionalità di Good ViBrations è accessibile direttamente dalla schermata principale: +
+ Finestra principale di GVB + + + + + + Mostra la finestra principale di GVB. + + + +
+ + Sulla sinistra, si può vedere l'area di visualizzazione principale, in cui si svolge la simulazione. + Sulla destra si trovano le varie regolazioni e gli indicatori: premere Parti per vederli in azione. + + + Velocità: imposta la velocità a cui si svolge la simulazione. + + + Passo: per quei metodi di calcolo che operano in tempo discreto (si veda (see per informazioni), permette di impostare il tempo trascorso tra un'iterazione e la successiva. Più questo valore è basso, maggiore sarà la precisione della simulazione, ma anche il costo computazionale. + + + Sotto a Passo si trova il contatore, che mostra quanti fotogrammi sono stati calcolati dall'inizio della simulazione. + + + ms. di calcolo riporta la media dei millisecondi spesi per calcolare ogni nuovo fotogramma (negli ultimi 2 seconds). + + + ms. di disegno riporta la media dei millisecondi spesi per disegnare ogni nuovo fotogramma (negli ultimi 2 secondi). + + + Corda e Superficie permettono di passare a simulazioni in (rispettivamente) 1 e 2 dimensioni. Cambiando questa impostazione, l'animazione sarà fermata e riavviata. + + + Sotto, il pulsante Start riporta ora la scritta Ferma: premendolo, l'animazione si arresterà. + + + Metodo di calcolo: imposta il metodo di calcolo utilizzato. Si veda per una lista dei metodi e le rispettive descrizioni. + + + Fotogramma/secondo: imposta il numero di fotogrammi visualizzati al secondo. Sotto i 20, l'animazione può essere scattosa, ma sopra i 25 non si dovrebbe notare quasi alcuna differenza (ed il costo computazionale salirà per i metodi che operano in tempo continuo). + + + Grafica: imposta il metodo di visualizzazione. Si veda per una lista dei metodi e le rispettive descrizioni. + + + + Troppa precisione può far male! + Velocità, Passo e Fotogrammi/secondo sono parametri fondamentali (insieme al numero di punti utilizzati - si veda ) nel determinare la quantità di operazioni matematiche che il computer deve effettuare ogni secondo: se sono scelti valori eccessivi, l'animazione può diventare scattosa, o addirittura Good ViBrations può bloccarsi. In questa eventualità, cliccare Ferma (solo una volta): nella maggior parte dei casi, l'interfaccia tornerà alla normalità in pochi secondi. + +
+ + + Il menu <guimenu>File</guimenu> + Il menu File elenca alcune operazioni generali: + + + FileApri: apre una disposizione (ovvero la descrizione dei punti e delle loro velocità) da un file. + + + FileSalva: salva la disposizione dei punti e le loro velocità in un file. + + + FileSalva come: salva la disposizione dei punti e le loro velocità in un nuovo file (se non si è ancora salvata alcuna disposizione, questa opzione è equivalente a FileSalva). + + + FileEsci: esci da Good ViBrations. + + + + + + Il menu <guimenu>Disposizioni</guimenu> + Il menu Disposizioni permette di impostare la forma della corda o della membrana all'inizio della simulazione. Ci sono due modi di farlo: + + + scegliendo una delle disposizioni precotte: ne è disponibile una collezione, sia in 1 che in 2 dimensioni, + + + avviando l'editor avanzato, anche questo disponibile per 1 e 2 dimensioni (si veda ). + + + + + + Il menu <guimenu>Opzioni</guimenu> + Il menu Opzioni permette di configurare alcuni aspetti della simulazione. + + + OpzioniNumero di punti: cambia il numero di punti utilizzati nella simulazione (si veda ). + + + OpzioniSalva i fotogrammi come png: se questa casellina è spuntata, l'animazione verrà salvata su disco invece di essere resa sullo schermo: si veda per informazioni. + + + + + + Il menu <guimenu>Aiuto</guimenu> + Il menu Aiuto permette di accedere ad informazioni riguardanti il programma. + + + AiutoSommario: apri questo manuale. + + + AiutoInformazioni: mostra alcune informazioni su Good ViBrations. + + + + +
+ + + + Cambiare il numero di punti + In Good ViBrations, la corda e la membrana sono approssimate come un certo numero di punti connessi da segmenti diritti. Maggiore è il numero di punti, maggiore sarà la qualità della simulazione, ma crescerà anche il numero di operazioni di calcolo necessarie per effettuarla. Per cambiare il numero di punti, selezionare OpzioniNumero di punti. + + + Una volta aperta questa finestra di dialogo, l'animazione, se attiva, si fermerà automaticamente e, se il numero di punti viene effettivamente cambiato, sarà riportata alla posizione iniziale, dato che Good ViBrations non è in grado di cambiare il numero di punti di una simulazione durante il suo svolgimento. + + + + Mentre in 1 dimensione un numero può valere l'altro, in 2 dimensioni i punti devono essere disposti lungo una griglia rettangolare (quasi quadrata). Se il numero scelto non è adatto, ne saranno utilizzati meno. Ad esempio, se il numero di punti scelto è 11, ne verranno utilizzati solo 9 (3×3); se è 14, ne verranno utilizzati solo 12 (3×4). + + +Quando i punti sono troppi + + Il numero di punti utilizzati è un parametro fondamentale per determinare il costo computazionale della simulazione: l'efficienza può peggiorare molto con il loro incremento, e mentre un numero tra 100 e 150 dovrebbe essere accettabile su qualsiasi computer, un numero superiore a questi livelli può far sì che l'interfaccia si blocchi (a seconda anche del metodo di calcolo scelto - si veda - e del valore degli altri parametri descritti in ). + + + + + Per osservare le armoniche, si può trovare il numero più adatto in questo modo: + + + prendere un numero con molti fattori piccolo, come ad esempio 2×2×3=12, + + + sottrarre 1: 11. + + + se si vuole effettuare una simulazione in 2 dimensioni, prenderne il quadrato: 11×11=121. + + + In questo esempio, sarà possibile osservare in modo ottimale le armoniche seconda, quarta e terza. + + + + + + + Metodi di disegno + Good ViBrations ha tre diversi modi di visualizzare una simulazione, sia in 1 che in 2 dimensioni, accessibili tramite la casella di scelta: + + + wave/3D i punti sono disegnati ad altezze diverse (in prospettiva se si sta lavorando in 2 dimensioni), formando qualcosa di effettivamente simile ad una corda o ad una membrana; + + + speeds è simile al precedente, ma mostra anche la velocità istantanea di ogni punto, sotto forma di un segmento rosso orientato nella direzione del movimento; + + + geo mostra le altezze similmente a come le mappe geografiche mostrano le altitudini: i punti sono rappresentati da quadratini, con colori che variano dal blu scuro (i punti più in basso) a blu chiaro, verde, marrone, marrone scuro ed infine bianco (i punti più alti). + + + + + + + + L'editor avanzato di disposizioni + Selezionando Disposizioni1 dimensione: avanzato o Disposizioni2 dimensioni: avanzato, si accede all'editor avanzato di disposizioni. È una finestra che permette di configurare la posizione di partenza della corda o della membrana interattivamente, con molta più libertà di scelta che accontentandosi di una delle disposizioni precotte. + +
+ L'editor avanzato in 2 dimensioni + + + + + + Mostra l'editor avanzato GVB. + + + +
+ + In cima, la casella di scelta Grafica permette di cambiare la visualizzazione della disposizione all'interno dell'editor, un po' come nella finestra principale. Si noti che in questo caso non c'è particolare differenza tra wave/3D e speeds, dato che non si sta considerando alcuna velocità. + L'editor avanzato si utilizza regolando i parametri di certe forme d'onda e combinandole. Sulla sinistra, si può vedere un'anteprima della disposizione mano a mano che le modifiche sono applicate. Sulla destra si trovano le varie regolazioni per modificare la forma fino a raggiungere quella desiderata. + + Regolazioni per una dimensione specifica + + + Forma d'onda: stabilisce la forma base della onda da usare: può essere sinusoidale, triangolare, quadrata o un semplice picco. + + + Lunghezza d'onda: stabilisce la frazione dello spazio disponibile che la nuova forma deve occupare. Il valore iniziale è "tutta"; se ad esempio il cursore viene spostata a metà corsa, la forma risultante occuperà solo metà dell'intero spazio della simulazione. + + + Spostamento: stabilisce se la forma deve partire dal primo punto (è il valore di default) o da un qualche altro punto nel mezzo. Si noti che se l'onda è spostata fino a superare il limite dello spazio totale, la parte in eccesso dalla parte destra/anteriore viene aggiunta dalla parte sinistra/posteriore, in una sorta di rotazione. + + + Lunghezza d'onda: stabilisce la lunghezza d'onda della forma base, ovvero lo spazio occupato da una sua ripetizione completa, o in altre parole la distanza tra due picchi successivi. Il valore iniziale è esattamente lo spazio disponibile, ma lo si può accrescere fino a 4 volte tanto e diminuire fino a 4 volte meno. + + + Fase: stabilisce la fase dell'onda, ovvero la traslazione che viene effettuata alla forma base. Se Lunghezza totale ha il valore massimo, l'effetto di questa regolazione è esattamente lo stesso di Spostamento; se invece così non è, può essere utilizzata per traslare/ruotare la forma d'onda all'interno dell'intervallo di applicazione. + + + Ampiezza: stabilisce l'ampiezza dell'onda, ovvero la distanza verticale tra un picco e la linea di riposo: il valore di default è il massimo; se ridotto, tutta la forma d'onda viene riscalata verticalmente. + + + Centratura: stabilisce a che punto la forma d'onda deve raggiungere il picco massimo: normalmente è posto a metà, e la forma d'onda e simmetrica; spostandolo a sinistra aumenterà la pendenza della forma d'onda a sinistra ed aumenterà a destra, e viceversa spostandolo a destra. + + + Rifletti: selezionando questa casella, la forma d'onda viene riflessa rispetto ad un asse verticale posto a metà. + + + Quelle elencate sono proprietà legate ad una singola dimensione: quando si lavora in 2 dimensioni, ognuna di esse è ripetuta due volte, una nella colonna Orizzontale ed una in quella Verticale, e riguarda rispettivamente il dominio sinistra-destra e quello dietro-avanti. + + + Controlli generali + Le altre opzioni che seguono invece si applicano genericamente ad 1 o 2 dimensioni. + + + Inverti: selezionando questa casella, la forma d'onda è invertita, ovvero ogni punto viene riflesso rispetto ad un piano orizzontale: ciò che è sotto andrà sopra e viceversa. + + + Regola di composizione (solo in 2 dimensioni): dato che le regolazioni legate ad una singola dimensione permettono di forgiare solo due particolari forme d'onda monodimensionali, che verranno orientate rispettivamente da sinistra a destra e da dietro a davanti, è qui possibile stabilire come queste forme dovranno combinarsi: + + prodotto: l'altezza di ogni punto sarà il prodotto delle altezze date dalle due forme d'onda; + + somma: l'altezza di ogni punto sarà la somma delle altezze date dalle due forme d'onda; + + massimo: l'altezza di ogni punto sarà il valore massimo assunto tra le due forme d'onda; + + minimo: l'altezza di ogni punto sarà il valore minimo assunto tra le due forme d'onda. + + + + + Aggiungi alla posizione attuale: se il numero di dimensioni in cui stiamo lavorando è lo stesso utilizzato nella simulazione nella finestra principale, è possibile, selezionando questa casella, sommare la forma d'onda che si sta creando con lo stato corrente della simulazione. Ciò fornisce uno strumento molto potente per creare disposizioni arbitrariamente complesse, semplicemente aggiungendo una forma d'onda alla volta, eventualmente ognuna ristretta ad una parte soltanto dello spazio disponibile. + + + + In fondo alla finestra, sono presenti tre pulsanti. + + + Ripristina riassegna ad ogni regolazione il suo valore iniziale. + + + Annulla chiude la finestra, annullando ogni modifica fatta. + + + Applica chiude la finestra, rendendo effettive le modifiche. + + + + +
+ + Metodi di calcolo + Good ViBrations mette a disposizione diversi metodi di calcolo, accessibili dal menu a scelta Metodi ci calcolo, nella finestra principale. + + Attenzione, dettagli tecnici! + Questa pagina contiene una lista dettagliata dei vari algoritmi disponibili Good ViBrations e dei loro aspetti tecnici; in quanto tale, potrebbe non essere comprensibile a chi non fosse abituato ai concetti matematici adoperati. Siccome Good ViBrations non è fatto solo per i laureati in matematica, ecco un riassunto più sintetico: + + + naif: spreciso e lento, non c'è nessun motivo reale di utilizzarlo; + + + naif matrix: identico a naif, ma più veloce; + + + quad: più preciso, ma anche più pesante dal punto di vista dei calcoli necessari; + + + eig: meno preciso di quad per animazioni molto brevi, ma il migliore a lungo termine, dato che non introduce o amplifica errori con il passare del tempo: tuttavia, deve effettuare alcuni calcoli iniziali, che potrebbero richiedere molto tempo e bloccare l'interfaccia prima dell'inizio dell'animazione se il numero di punti utilizzato è alto. + + + + Quella che segue è la lista più dettagliata. + + + naif opera in tempo discreto: calcola la posizione di un punto ad una data iterazione grosso modo come la posizione nell'iterazione precedente più la velocità nell'iterazione precedente, moltiplicata per il tempo trascorso (che è dato dal parametro Passo), e la velocità in una data iterazione come la differenza tra la sua altezza e l'altezza media dei punti circostanti nell'iterazione precedente. + + + naif matrix è identico a naif, tranne che non calcola i punti uno alla volta, ma li tratta come un vettore, che è aggiornato iterazione dopo iterazione moltiplicandolo per una matrice data. Lo si può considerare un test di riferimento: paragonare i tempi di calcolo con quelli di naif dà l'idea di quanto le librerie scipy utilizzate per i calcoli matriciali siano più efficienti del semplice codice Python. + + + quad è simile a naif, tranne che non linearizza il calcolo della velocità: essa non è più la semplice differenza in altezza rispetto ai punti circostanti, ma prende in considerazione la distanza "vera", compresa la componente orizzontale. + + + eig opera in tempo continuo: prende il problema linearizzato (come naif), ma considera il sistema associato di equazioni differenziali, che è definito da una certa matrice, di cui calcola l'esponenziale: per effettuare questa operazione, deve calcolarne gli autovalori ed autovettori (grazie alla libreria scipy). Una volta finito questo calcolo, non fa altro che moltiplicare tra di loro la matrice risultante e la matrice diagonale data dagli esponenziali degli autovalori. + + + + + Salvare i fotogrammi come immagini + Selezionando OpzioniSalva fotogrammi come png, si aprirà una finestra di dialogo in cui sarà possibile scegliere una cartella, ed i fotogrammi saranno quindi salvati in quella cartella come immagini png, invece di essere visualizzati sullo schermo. Questa funzionalità è comoda per creare un video, o quando la complessità dei calcoli richiesti è eccessiva per una visualizzazione in tempo reale. + Deselezionando la casellina, l'animazione riprenderà ad essere visualizzata sullo schermo. + Un modo semplice per trasformare le immagini così prodotte in un video è il seguente: + + + assicurarsi che il programma ffmpeg sia installato nel sistema, + + + aprire un terminale e spostarsi nella cartella contentente le immagini preparate con Good ViBrations, + + + dare il comando ffmpeg -i %08d.png video.mp4. + + + +
Index: gvb-1.2.1/setup.py =================================================================== --- gvb-1.2.1.orig/setup.py 2010-02-14 09:46:19.000000000 -0500 +++ gvb-1.2.1/setup.py 2013-07-23 13:51:09.961376802 -0400 @@ -49,19 +49,3 @@ root = dist.command_options['install']['root'][1] else: root = '/' - - omf_path, omf_files = filter(lambda x : 'help/C/gvb-C.omf' in x[1], dist.data_files)[0] - - for omf in omf_files: - folder, lang, filename = omf.split('/') - help_path, help_file = filter(lambda x: 'help/%s/gvb.xml' % lang in x[1], dist.data_files)[0] - omf_full_path = path.join(root, net_prefix, omf_path, filename) - help_full_path = path.join(prefix, help_path, 'gvb.xml') - try: - assert (not subprocess.call(['scrollkeeper-preinstall', help_full_path, omf_full_path, omf_full_path])) - except: - print 'Trying with "/usr/local" (do not worry about last error message, unless it is repeated below).' - omf_full_path = omf_full_path.replace('usr/share', 'usr/local/share') - help_full_path = help_full_path.replace('usr/share', 'usr/local/share') - subprocess.call(['scrollkeeper-preinstall', help_full_path, omf_full_path, omf_full_path]) -# print ['scrollkeeper-preinstall', help_full_path, omf_full_path, omf_full_path] debian/copyright0000644000000000000000000005477712207563553011155 0ustar This package was debianized by Pietro Battiston on Fri, 30 Jun 2008 17:31:25 +0200. It was downloaded from http://launchpad.net/gvb/trunk Upstream Author: Pietro Battiston Copyright: Copyright © 2008-2009 Pietro Battiston License: This package is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This package is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this package; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA On Debian systems, the complete text of the GNU General Public License can be found in `/usr/share/common-licenses/GPL-3'. The icons of the program are screenshots of the program itself and are also covered by GPL 3 (or any later version) license. Exceptions: Files in directory "help" and its subdirectories are Copyright © 2009, Pietro Battiston and are covered by a Creative Commons ShareAlike 3.0 (CC-BY-SA) license: THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. 1. Definitions 1. "Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License. 2. "Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined below) for the purposes of this License. 3. "Creative Commons Compatible License" means a license that is listed at http://creativecommons.org/compatiblelicenses that has been approved by Creative Commons as being essentially equivalent to this License, including, at a minimum, because that license: (i) contains terms that have the same purpose, meaning and effect as the License Elements of this License; and, (ii) explicitly permits the relicensing of adaptations of works made available under that license under this License or a Creative Commons jurisdiction license with the same License Elements as this License. 4. "Distribute" means to make available to the public the original and copies of the Work or Adaptation, as appropriate, through sale or other transfer of ownership. 5. "License Elements" means the following high-level license attributes as selected by Licensor and indicated in the title of this License: Attribution, ShareAlike. 6. "Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License. 7. "Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast. 8. "Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work. 9. "You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation. 10. "Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images. 11. "Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium. 2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws. 3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below: 1. to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections; 2. to create and Reproduce Adaptations provided that any such Adaptation, including any translation in any medium, takes reasonable steps to clearly label, demarcate or otherwise identify that changes were made to the original Work. For example, a translation could be marked "The original work was translated from English to Spanish," or a modification could indicate "The original work has been modified."; 3. to Distribute and Publicly Perform the Work including as incorporated in Collections; and, 4. to Distribute and Publicly Perform Adaptations. 5. For the avoidance of doubt: 1. Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; 2. Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor waives the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; and, 3. Voluntary License Schemes. The Licensor waives the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License. The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. Subject to Section 8(f), all rights not expressly granted by Licensor are hereby reserved. 4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions: 1. You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(c), as requested. If You create an Adaptation, upon notice from any Licensor You must, to the extent practicable, remove from the Adaptation any credit as required by Section 4(c), as requested. 2. You may Distribute or Publicly Perform an Adaptation only under the terms of: (i) this License; (ii) a later version of this License with the same License Elements as this License; (iii) a Creative Commons jurisdiction license (either this or a later license version) that contains the same License Elements as this License (e.g., Attribution-ShareAlike 3.0 US)); (iv) a Creative Commons Compatible License. If you license the Adaptation under one of the licenses mentioned in (iv), you must comply with the terms of that license. If you license the Adaptation under the terms of any of the licenses mentioned in (i), (ii) or (iii) (the "Applicable License"), you must comply with the terms of the Applicable License generally and the following provisions: (I) You must include a copy of, or the URI for, the Applicable License with every copy of each Adaptation You Distribute or Publicly Perform; (II) You may not offer or impose any terms on the Adaptation that restrict the terms of the Applicable License or the ability of the recipient of the Adaptation to exercise the rights granted to that recipient under the terms of the Applicable License; (III) You must keep intact all notices that refer to the Applicable License and to the disclaimer of warranties with every copy of the Work as included in the Adaptation You Distribute or Publicly Perform; (IV) when You Distribute or Publicly Perform the Adaptation, You may not impose any effective technological measures on the Adaptation that restrict the ability of a recipient of the Adaptation from You to exercise the rights granted to that recipient under the terms of the Applicable License. This Section 4(b) applies to the Adaptation as incorporated in a Collection, but this does not require the Collection apart from the Adaptation itself to be made subject to the terms of the Applicable License. 3. If You Distribute, or Publicly Perform the Work or any Adaptations or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and (iv) , consistent with Ssection 3(b), in the case of an Adaptation, a credit identifying the use of the Work in the Adaptation (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). The credit required by this Section 4(c) may be implemented in any reasonable manner; provided, however, that in the case of a Adaptation or Collection, at a minimum such credit will appear, if a credit for all contributing authors of the Adaptation or Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties. 4. Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Adaptations or Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. Licensor agrees that in those jurisdictions (e.g. Japan), in which any exercise of the right granted in Section 3(b) of this License (the right to make Adaptations) would be deemed to be a distortion, mutilation, modification or other derogatory action prejudicial to the Original Author's honor and reputation, the Licensor will waive or not assert, as appropriate, this Section, to the fullest extent permitted by the applicable national law, to enable You to reasonably exercise Your right under Section 3(b) of this License (right to make Adaptations) but not otherwise. 5. Representations, Warranties and Disclaimer UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. 6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 7. Termination 1. This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Adaptations or Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License. 2. Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above. 8. Miscellaneous 1. Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License. 2. Each time You Distribute or Publicly Perform an Adaptation, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License. 3. If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. 4. No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent. 5. This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You. 6. The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law. The Debian packaging is © 2008-2009, Pietro Battiston and is licensed under the GPL, see above. debian/compat0000644000000000000000000000000212207563761010375 0ustar 9 debian/dirs0000644000000000000000000000012612207563553010061 0ustar usr/bin usr/share/gvb/stuff usr/share/applications usr/share/locale usr/share/pixmaps debian/manpages0000644000000000000000000000001512207563553010710 0ustar debian/gvb.1 debian/source/0000755000000000000000000000000012207563761010477 5ustar debian/source/format0000644000000000000000000000001412207563761011705 0ustar 3.0 (quilt) debian/gvb.10000644000000000000000000000331312207563553010036 0ustar .\" Hey, EMACS: -*- nroff -*- .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" other parameters are allowed: see man(7), man(1) .TH "GVB" 1 "June 15, 2008" .\" Please adjust this date whenever revising the manpage. .\" .SH NAME gvb \- simulate 1 and 2-dimensional vibrations in a nice GUI .SH SYNOPSIS .B gvb .SH DESCRIPTION This manual page documents briefly the .B gvb command. .PP \fBgvb\fP is a program that lets the user simulate waves and vibrations with given starting positions, calculation method and graphical appearance. .br It's easy to get the GUI nearly stuck if started with too much points; the maximum of points that an average computer can manage while remaining responsive is probably about 200. An exception is given by the fact that if you are dumping frames to create an animation, probably you want a good quality and won't mind if the GUI is almost stuck. .br Also pay attention to the fact that the "eig" mode requires a lot of precalculation; in this mode, calculating in 2 dimensions with just 15 points per dimension can already require some minutes, depending on CPU power. .SH SEE ALSO .BR gwave (1), .br .SH LICENSE Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 3 any later version published by the Free Software Foundation. .br On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common-licenses/GPL. .SH AUTHOR gvb and this manual page were written by Pietro Battiston . .PP This manual page was written for the Debian project (but may be used by others). debian/watch0000644000000000000000000000014112207563761010224 0ustar version=3 https://launchpad.net/gvb/ \ .*/gvb-(\d\S*)\.(?:tar\.xz|txz|tar\.bz2|tbz2|tar\.gz|tgz) debian/changelog0000644000000000000000000000333212207564111011040 0ustar gvb (1.2.1-1.1) unstable; urgency=low * Non-maintainer upload. * Use dh compat 9 * Use dh_python2 instead of deprecated python-support * Use quilt instead of dpatch * Use updated debian/watch * Update help handling for python-distutils-extra 2.38 (Closes: #717680). This also fixes the FTBFS as the omf file does not exist any more. (Closes: #718078) -- Jeremy Bicha Tue, 23 Jul 2013 13:49:07 -0400 gvb (1.2.1-1) unstable; urgency=low * New upstream release. - Removed dpatch patches, now obsolete. - Updated manpage (now number of points is not per dimension) * Migrated to debhelper 7 - Upstream changelog is now installed (Closes: #561659) -- Pietro Battiston Tue, 02 Feb 2010 11:14:24 +0100 gvb (1.2-2) unstable; urgency=low * Add --prefix to setup.py invocation (Closes: #557955) * Now using dpatch * Patched setup.py to accept correctly both --root and --prefix * Replaced mencoder with ffmpeg in Suggests * Replaced mention to mencoder with mention to ffmpeg in manual -- Pietro Battiston Wed, 02 Dec 2009 08:26:25 +0100 gvb (1.2-1) unstable; urgency=low * New upstream release. * Now using python-support instead than python-central * debian/copyright now uses the "©". * debian/rules: now including /usr/share/python/python.mk * updated project homepage -- Pietro Battiston Sun, 15 Nov 2009 00:02:43 +0100 gvb (1.1.2-2) unstable; urgency=low * Fixed broken watch file -- Pietro Battiston Mon, 01 Sep 2008 17:46:01 +0200 gvb (1.1.2-1) unstable; urgency=low * Initial release (Closes: #486010) -- Pietro Battiston Fri, 30 Jun 2008 17:24:25 +0200