@ -11,6 +11,7 @@ import (
"math/rand"
"os"
"runtime"
"strconv"
"sync"
"time"
@ -24,15 +25,17 @@ import (
)
const (
anzahlTöpfchen int8 = 35
anzahlKugeln int32 = 80000
anzahlTöpfchen uint8 = 35
anzahlKugeln uint32 = 1000000
intervallWartezeitSec uint8 = 1
höhenFaktor uint8 = 7
)
var timestamp [ 2 ] int64
var notify * notificator . Notificator
var wg , wgcli , wggui sync . WaitGroup // !
var wg , wgcli , wggui sync . WaitGroup
func main ( ) {
runtime . GOMAXPROCS ( runtime . NumCPU ( ) )
@ -50,64 +53,25 @@ func main() {
widgets . NewQApplication ( len ( os . Args ) , os . Args )
var c_widget = widgets . NewQWidget ( nil , 0 )
var ui_widget = myGui . LeseUIFile ( c_widget )
var ui_textBrowser , ui_lcdNummer , ui_progressBar , ui_graphicsView = myGui . ErzeugeLayout ( c_widget , ui_widget , & töpfchenAlle , c ) // Beispiel für Parameterrückgabe als Tupel
var c_scene = widgets . NewQGraphicsScene ( nil )
ui_textBrowser . ConnectAppend ( func ( s string ) {
ui_textBrowser . Append ( s )
} )
ui_lcdNummer . ConnectDisplay2 ( func ( i int ) {
ui_lcdNummer . Display2 ( i )
} )
ui_progressBar . ConnectSetValue ( func ( i int ) {
ui_progressBar . SetValue ( i )
} )
/ *
ui_graphicsView . ConnectPaintEvent ( func ( e * gui . QPaintEvent ) {
//ui_graphicsView.DrawBackground(gui.QPainter.SetBrush(gui.NewQBrush()), rect)
img := gui . NewQImage3 ( 32 , 32 , gui . QImage__Format_ARGB32 )
for i := 0 ; i < 32 ; i ++ {
for j := 0 ; j < 32 ; j ++ {
//img.SetPixelColor2(i, j, gui.NewQColor3(j*8, i*2, i*2, 255))
img . SetPixelColor2 ( i , j , gui . NewQColor3 ( 255 , 255 , 0 , 255 ) )
}
var ui_textBrowser , ui_lcdNummer , ui_progressBar , ui_sliderArea = myGui . ErzeugeLayout ( c_widget , ui_widget , & töpfchenAlle , c ) // Beispiel für Parameterrückgabe als Tupel
ui_lcdNummer . SetDigitCount ( len ( strconv . Itoa ( ( int ) ( anzahlKugeln ) ) ) )
var c_slider [ anzahlTöpfchen ] * widgets . QSlider
for i := uint8 ( 0 ) ; i < anzahlTöpfchen ; i ++ {
c_slider [ i ] = widgets . NewQSlider2 ( core . Qt__Vertical , nil )
c_slider [ i ] . SetMinimum ( 0 )
c_slider [ i ] . SetMaximum ( int ( anzahlKugeln ) / int ( höhenFaktor ) )
c_slider [ i ] . SetValue ( 0 ) // c_slider[i].Maximum() / 4
c_slider [ i ] . SetSizePolicy2 ( widgets . QSizePolicy__MinimumExpanding , widgets . QSizePolicy__MinimumExpanding )
c_slider [ i ] . ConnectResizeEvent ( func ( * gui . QResizeEvent ) {
for j := uint8 ( 0 ) ; j < anzahlTöpfchen ; j ++ {
c_slider [ j ] . SetFixedHeight ( c_widget . Height ( ) * 93 / 100 )
}
} )
} ) * /
ui_graphicsView . ConnectResizeEvent ( func ( e * gui . QResizeEvent ) {
ui_graphicsView . FitInView ( c_scene . ItemsBoundingRect ( ) , core . Qt__KeepAspectRatio )
fmt . Println ( "Hallo" )
} )
//pinsel := ui_graphicsView.ForegroundBrush()
// paintengine := ui_graphicsView.PaintEngine()
dx , dy := int ( anzahlTöpfchen ) , int ( anzahlTöpfchen )
//c_img := gui.NewQImage()
c_img := gui . NewQPainter ( ) // NewQImage3(dx, dy, gui.QImage__Format_ARGB32)
/ * for i := 0 ; i < dx ; i ++ {
for j := 0 ; j < dy ; j ++ {
//c_img.SetPixelColor2(i, j, gui.NewQColor3(j*8, i*2, i*2, 255))
c_img . SetPixelColor2 ( i , j , gui . NewQColor3 ( 232 , 232 , 232 , 255 ) )
}
} * /
//c_img = c_img.Scaled2(ui_graphicsView.Height(), ui_graphicsView.Width(), core.Qt__IgnoreAspectRatio, core.Qt__FastTransformation)
c_item := widgets . NewQGrap //NewQGraphicsPixmapItem2(gui.NewQPixmap().FromImage(c_img, 0), nil)
c_scene . AddItem ( c_item )
c_img = c_img . Scaled2 ( ui_graphicsView . Height ( ) , ui_graphicsView . Width ( ) , core . Qt__IgnoreAspectRatio , core . Qt__FastTransformation )
ui_graphicsView . SetScene ( c_scene )
ui_graphicsView . Show ( )
//item := ui_graphicsView.
ui_sliderArea . AddWidget ( c_slider [ i ] , 0 , core . Qt__AlignBottom )
}
wgcli . Add ( 1 )
go func ( t * [ ] int , ch chan bool ) {
@ -119,42 +83,33 @@ func main() {
}
return amount
}
for i := 0 ; true ; i = sum ( t ) {
for i := int ( 0 ) ; true ; i = sum ( t ) {
select {
case <- ch :
ui_textBrowser . Append ( fmt . Sprint ( "\u2690" , * t ) )
ui_lcdNummer . Display2 ( int ( anzahlKugeln ) )
ui_progressBar . SetValue ( 100 )
for j , v := range * t {
c_slider [ j ] . SetValue ( v )
//fmt.Println(j, v)
}
return
default :
ui_textBrowser . Append ( fmt . Sprint ( "\u231B " , * t , runtime . NumGoroutine ( ) ) )
ui_lcdNummer . Display2 ( i )
ui_progressBar . SetValue ( int ( math . Floor ( ( float64 ( i ) / float64 ( anzahlKugeln ) * 100 ) + .5 ) ) )
/ * for i , v := range * t {
c_img . SetPixelColor2 ( i + 1 * ( ui_graphicsView . Width ( ) / int ( anzahlTöpfchen ) ) , ( ui_graphicsView . Height ( ) / int ( anzahlKugeln ) * 20 ) * v , gui . NewQColor3 ( 255 , 0 , 0 , 255 ) )
fmt . Println ( i , v )
}
c_img . SetPixelColor2 ( 100 , 100 , gui . NewQColor3 ( 255 , 0 , 255 , 255 ) )
c_img . SetPixelColor2 ( 100 , 101 , gui . NewQColor3 ( 255 , 0 , 255 , 255 ) )
c_img . SetPixelColor2 ( 100 , 102 , gui . NewQColor3 ( 255 , 0 , 255 , 255 ) )
c_img . SetPixelColor2 ( 100 , 103 , gui . NewQColor3 ( 255 , 0 , 255 , 255 ) )
c_img . SetPixelColor2 ( 101 , 100 , gui . NewQColor3 ( 255 , 0 , 255 , 255 ) )
c_img . SetPixelColor2 ( 101 , 101 , gui . NewQColor3 ( 255 , 0 , 255 , 255 ) )
c_img . SetPixelColor2 ( 101 , 102 , gui . NewQColor3 ( 255 , 0 , 255 , 255 ) )
c_img . SetPixelColor2 ( 101 , 103 , gui . NewQColor3 ( 255 , 0 , 255 , 255 ) )
c_img = c_img . Scaled2 ( ui_graphicsView . Height ( ) , ui_graphicsView . Width ( ) , core . Qt__IgnoreAspectRatio , core . Qt__FastTransformation )
c_item2 := widgets . NewQGraphicsPixmapItem2 ( gui . NewQPixmap ( ) . FromImage ( c_img , 0 ) , nil )
c_scene . AddItem ( c_item2 )
* /
time . Sleep ( time . Second * 1 )
for j , v := range * t {
c_slider [ j ] . SetValue ( v )
//fmt.Println(j, v)
}
time . Sleep ( time . Second * time . Duration ( intervallWartezeitSec ) )
}
}
} ( & töpfchenAlle , c )
go func ( wg * sync . WaitGroup , töpfchenAlle * [ ] int , c chan bool ) {
for k := ( int32 ) ( 1 ) ; k <= anzahlKugeln ; k ++ {
for k := ( uint32 ) ( 1 ) ; k <= anzahlKugeln ; k ++ {
wg . Add ( 1 )
go zeigeMirDenGauß ( int ( anzahlKugeln ) , int ( anzahlTöpfchen ) , töpfchenAlle )