tag:blogger.com,1999:blog-55828328670453877292024-03-12T17:00:51.395-07:00KAME - Blog about programming in Python and C# .NETyears ago in Python, now in C#Unknownnoreply@blogger.comBlogger63125tag:blogger.com,1999:blog-5582832867045387729.post-62390384060310179272015-08-21T01:17:00.001-07:002015-08-21T01:17:23.135-07:00C# .NET - The beginningToday I integrate C# in this blog. I also will write in English to improve my language skills and to reach a bigger audience. :)<br />
<br />
I started using C# months ago and will learning a lot more because it is widely spread also in my company. C# is a very powerful tool with a huge .NET-library.<br />
<br />
I also write this blog because I think, that I can learn much from the comments here.<br />
<br />
Greetings,<br />
SteffenUnknownnoreply@blogger.com0tag:blogger.com,1999:blog-5582832867045387729.post-45856813347746135672012-02-01T04:20:00.000-08:002012-02-01T04:22:25.059-08:00Python 054 A moving snake which doesn't touch itself<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjb82Vn25VDIrGddym8Yk9yRL7pnz7w0WqotZr9D-rTivEQIIACnSorvi67GD0t1y9_88xFC2TvCYbbiPGpyXqj4dRRbxPwscNFN7PEBbvyGuTlFJvWi6_6eEvzl7vsV9G0NiqTHc5QIqs/s1600/6.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 213px; height: 320px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjb82Vn25VDIrGddym8Yk9yRL7pnz7w0WqotZr9D-rTivEQIIACnSorvi67GD0t1y9_88xFC2TvCYbbiPGpyXqj4dRRbxPwscNFN7PEBbvyGuTlFJvWi6_6eEvzl7vsV9G0NiqTHc5QIqs/s320/6.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5704141207624189186" /></a><br /><br />When the snake is moving, it checks if there are some body parts in front of the snake.<br /><br />Code with indentation:<br /><a href="http://pastebin.com/Kh67858f">http://pastebin.com/Kh67858f</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5582832867045387729.post-67026737273685292192012-02-01T04:16:00.000-08:002012-02-01T04:25:31.648-08:00Python 053 Outer space snakes<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPvptX38zdy-5jJMDR_lOof9c4U_ZVTVO_bxadjbwiSC4QDn8_DgbUd-8zmvmG7WyzEmc1SVtRvgQEztDU92eLjYaz6BSwMe6frhQas9CAJxFdNHxu3NwVV73y-ejMwUZQgAIhBL0w3TM/s1600/3.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 238px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPvptX38zdy-5jJMDR_lOof9c4U_ZVTVO_bxadjbwiSC4QDn8_DgbUd-8zmvmG7WyzEmc1SVtRvgQEztDU92eLjYaz6BSwMe6frhQas9CAJxFdNHxu3NwVV73y-ejMwUZQgAIhBL0w3TM/s320/3.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5704140585663577314" /></a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5582832867045387729.post-14642924077422541592011-02-14T06:46:00.000-08:002012-02-01T04:19:55.373-08:00Python 052Last year I already make a programm for calculating magnetic fields of wires and coils. This one here is a slightly better version. :)<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnMgvVnFI6X1iap2Kr72xJBoLITcrZt7WFuLZiF0B9KO3Aci_PbFx72WwXI27bce6uAZ7_scNiSGKcjJau6c1ChKlOOH0Z2V4vx8ovEQDdwVu_YgXAE-Xj4PY3HJMcDQPtK5AB99dVF-M/s1600/Screenshot+-+14.02.2011+%252C+15_45_05.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 184px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnMgvVnFI6X1iap2Kr72xJBoLITcrZt7WFuLZiF0B9KO3Aci_PbFx72WwXI27bce6uAZ7_scNiSGKcjJau6c1ChKlOOH0Z2V4vx8ovEQDdwVu_YgXAE-Xj4PY3HJMcDQPtK5AB99dVF-M/s320/Screenshot+-+14.02.2011+%252C+15_45_05.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5573557059480308898" /></a><br /><br /><br /># Calculation of a magnetic field of a wire<br /><br />import matplotlib<br />import numpy as np<br />import matplotlib.pyplot as plt<br />from pylab import *<br />from visual import *<br /><br /># constant<br />I = 1<br />mu0 = 1e-7<br />constant = mu0/(4*np.pi)<br /><br /># coil<br />parts = 238<br />coord2 =[]<br />ball = []<br />size = 25<br />factor = 6.0<br />steigung = 0.3<br />for i in range(parts):<br /> coord2.append((size*(sin(i/factor)),size*(cos(i/factor)),steigung*i))<br /> ball.append(sphere(pos=(coord2[i][0],coord2[i][1],coord2[i][2])))<br /><br /># calculate the b-field<br />def bfield(x,y,z):<br /> b = 0<br /> for i in range(parts-1):<br /> dlx = coord2[i+1][0]-coord2[i][0]<br /> dly = coord2[i+1][1]-coord2[i][1] <br /> dlz = coord2[i+1][2]-coord2[i][2] <br /> dl = np.array([dlx,dly,dlz])<br /> rspace_minus_rwire_x = x - (coord2[i][0]+dlx)<br /> rspace_minus_rwire_y = y - (coord2[i][1]+dly)<br /> rspace_minus_rwire_z = z - (coord2[i][2]+dlz)<br /> rspace_minus_rwire = np.array([rspace_minus_rwire_x, rspace_minus_rwire_y, rspace_minus_rwire_z])<br /> absr = (rspace_minus_rwire_x**2 + rspace_minus_rwire_y**2 + rspace_minus_rwire_z**2)**0.5<br /> a = constant * I * np.cross(dl, rspace_minus_rwire) / absr**3<br /> #b += (a[0]**2 + a[1]**2 + a[2]**2)**0.5<br /> b += a<br /> return b<br /><br /># visualisation<br />for x in range(-42,42,3):<br /> for z in range(-60,40,6):<br /> y = 0<br /> a = bfield(x,y,z)<br /> a = 800000000 * a<br /> #print a<br /> limit = 10 # largest arrow size<br /> if abs(a[0]) > limit or abs(a[1]) > limit or abs(a[2]) > limit:<br /> a = (0,0,0)<br /> arrow(pos=(x,y,z),axis=(a), color=color.green)<br /><br />Here is the code with indentation:<br /><a href="http://paste.pocoo.org/show/338355/">http://paste.pocoo.org/show/338355/</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5582832867045387729.post-75882893236578167332011-02-12T09:10:00.000-08:002011-02-12T09:15:17.170-08:00Python 051 Magnetic field of a wire using Biot-Savart-lawThis programm doesn't use numpy. Therefore I recommend to use it for smaller calculations.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_exv-D-uMw4-NzYHG40AvEwdaJlrsVUpOhyphenhyphenZnwULdiBYaB1uuDvSXT4VeQn9CqPBR_Nwf2TjO16lxSosIEWYSq1zD1HiAa4_s1l9aUTAL5itzjzoblGSclOTW5_y0npnYC4oRR5W10ds/s1600/bfield.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 308px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_exv-D-uMw4-NzYHG40AvEwdaJlrsVUpOhyphenhyphenZnwULdiBYaB1uuDvSXT4VeQn9CqPBR_Nwf2TjO16lxSosIEWYSq1zD1HiAa4_s1l9aUTAL5itzjzoblGSclOTW5_y0npnYC4oRR5W10ds/s320/bfield.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5572852754879804354" /></a><br /><br />Code with indentation:<br /><a href="http://paste.pocoo.org/show/337101/">http://paste.pocoo.org/show/337101/</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5582832867045387729.post-61629726322592308142010-10-10T14:48:00.000-07:002011-02-12T09:10:19.553-08:00Python 050 Test-charge between other charged bodies<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGFJ63CooiV0fXo7yak8xWpZMvnxPwkBRfObAGBx9KsXrF5FSBF9QCbBAIJ-AD_s76GCfzA3bBtv3skmJXguLcOiJi8V0TSykhv9Mqu0kHuSPoQ2WQbxpWGU1n4vOPpveSFJ4sSp68_as/s1600/Screenshot+-+10.10.2010+,+23_46_54.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 258px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGFJ63CooiV0fXo7yak8xWpZMvnxPwkBRfObAGBx9KsXrF5FSBF9QCbBAIJ-AD_s76GCfzA3bBtv3skmJXguLcOiJi8V0TSykhv9Mqu0kHuSPoQ2WQbxpWGU1n4vOPpveSFJ4sSp68_as/s320/Screenshot+-+10.10.2010+,+23_46_54.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5526538203148199298" /></a><br /><br />Here you will find the code:<br /><a href="http://paste.pocoo.org/show/273774/">http://paste.pocoo.org/show/273774/</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5582832867045387729.post-21024532713157621732010-05-27T10:43:00.000-07:002010-05-27T14:05:14.759-07:00Python 049 Laplace-algorithm for calculating voltage between different potentials numerically<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOSMEOw72pM5zRyh0WKWGASkQRuh6t5ubPveM3mrgxBkExGMToJQQNDukecipgD_6Y3CLiniq1OvGILCxdHj9eWm9S0vPSrbvN-I_ZtD7yV5h6Trl2qc_pZU4FwWLInhWSXZliwIhRxqw/s1600/Screenshot+-+27.05.2010+,+19_34_50.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 320px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOSMEOw72pM5zRyh0WKWGASkQRuh6t5ubPveM3mrgxBkExGMToJQQNDukecipgD_6Y3CLiniq1OvGILCxdHj9eWm9S0vPSrbvN-I_ZtD7yV5h6Trl2qc_pZU4FwWLInhWSXZliwIhRxqw/s320/Screenshot+-+27.05.2010+,+19_34_50.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5476007238741080818" /></a><br /><br />The white edges have a potential of 0 V. The two bodies inside have a potential of 30 V. The voltage in the space between has been calculated numerically with the laplace-algorithm.<br /><br />from visual import *<br /><br />ball = []<br />v = [] # v = voltage<br />vnew = [] # new calculated voltage<br />unchangeableflag = [] # if 1 --> value cannot be changed<br />size = 35 # size of the field<br />scene.center = (size/2, size/2, 0)<br />vmax = 100.0<br /><br /># initalize<br />for n in range(size*size+size+1):<br /> v.append(0)<br /> vnew.append(0)<br /> unchangeableflag.append(0)<br /><br /># draw raster<br />for x in range(size):<br /> for y in range(size):<br /> ball.append([]) # x-pos, y-pos<br /> ball[x*size+y] = sphere(pos=(x,y), radius = 0.4)<br /><br /># set unchangeable potentials<br />for n in range(size):<br /> v[n] = 0.0<br /> unchangeableflag[n] = 1<br /><br />for n in range(size):<br /> v[n*size-1] = 0.0<br /> unchangeableflag[n*size-1] = 1<br /><br />for n in range(size):<br /> v[n*size] = 0.0<br /> unchangeableflag[n*size] = 1<br /><br />for n in range(size):<br /> v[size*size-size+n] = 0.0<br /> unchangeableflag[size*size-size+n] = 1<br /><br />v[250] = vmax<br />unchangeableflag[250] = 1<br />v[475] = vmax<br />unchangeableflag[475] = 1<br />print "set unchangeable potentials!"<br /><br /># laplace-algorithm<br />for a in range(1000000):<br /> for x in range(size):<br /> for y in range(size):<br /> if x % size != 1:<br /> pass<br /> if x % size != size - 1:<br /> pass<br /> if y % size != 1:<br /> pass<br /> if y % size != size - 1:<br /> pass<br /> if unchangeableflag[x*size+y] == 0:<br /> vnew[x*size+y] = (v[(x+1)*size+y] + v[(x-1)*size+y] + v[x*size+y+1] + v[x*size+y-1]) / 4.0<br /><br /> # vnew --> v<br /> colorfactor = 10.0<br /> for x in range(size):<br /> for y in range(size):<br /> if unchangeableflag[x*size+y] == 0:<br /> v[x*size+y] = vnew[x*size+y]<br /> ball[x*size+y].color = (v[x*size+y]/10,0.2,0.2)<br /> if v[x*size+y] >= 0.2 * vmax:<br /> ball[x*size+y].color = ((abs(v[x*size+y]/colorfactor/5.0)),0,0)<br /> else:<br /> ball[x*size+y].color = (0,0,(abs(v[x*size+y]/colorfactor)))<br /><br />Code with identation:<br /><a href=" http://paste.pocoo.org/show/218999/"><br />http://paste.pocoo.org/show/218999/</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5582832867045387729.post-4313789725547309392010-05-20T10:48:00.000-07:002010-05-20T10:55:50.282-07:00Python 048 Objects with a minimal distance and a path between them<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5o1pNktaDeHDq-vbPqNPPbPpylV1APa6jQ_l6Su-2RyeCa6fy5ETeD1YPNDGPe115u4Jf7cLAxkrwOIzDrGCw5TYgjv0VLR9zP-g9LLMCDXfj0-E9nb4Zz81UlGa-jv57-KoyDjdlDxg/s1600/Screenshot+-+20.05.2010+,+19_42_25.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 162px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5o1pNktaDeHDq-vbPqNPPbPpylV1APa6jQ_l6Su-2RyeCa6fy5ETeD1YPNDGPe115u4Jf7cLAxkrwOIzDrGCw5TYgjv0VLR9zP-g9LLMCDXfj0-E9nb4Zz81UlGa-jv57-KoyDjdlDxg/s320/Screenshot+-+20.05.2010+,+19_42_25.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5473411400953837586" /></a><br /><br /># date: 20100520<br /># object that have a minimal distance between them<br /># using faster algorithm with the filter-function<br /># building a path between close objects<br /><br />import random<br />from visual import *<br /><br />Ncell = 4000<br />cell = [[10,10]] # first cell is given<br />ball = sphere(pos=(10,10))<br />size = Ncell/15 # size of the field<br />scene.center = (size/2, size/2, 0)<br />min_dist = 5 # minimal distance between two bodies<br />path_dist = min_dist*1.5 # draw a path if length is path-dist or shorter<br /><br />for i in range(Ncell):<br /> x = random.randint(1,size)<br /> y = random.randint(1,size)<br /> far = 1<br /> # coarse filter<br /> cell2 = filter(lambda k: abs(k[0] - x) < min_dist and abs(k[1] - y) < min_dist , cell) # excellent :)<br /> # fine filter<br /> for i in range(len(cell2)):<br /> r = ((x-cell2[i][0])**2 + (y-cell2[i][1])**2)**0.5<br /> if r < min_dist:<br /> far = 0<br /> pass<br /> if far == 1:<br /> cell.append([x,y]) # x-pos, y-pos<br /> ball = sphere(pos=(x,y))<br /><br /># building the path between two objects<br />for i in range(len(cell)):<br /> # coarse filter<br /> cell2 = filter(lambda k: abs(k[0] - cell[i][0]) < path_dist and abs(k[1] - cell[i][1]) < path_dist , cell)<br /> # fine filter<br /> for j in range(len(cell2)):<br /> r = ((cell[i][0]-cell2[j][0])**2 + (cell[i][1]-cell2[j][1])**2)**0.5<br /> if r < path_dist:<br /> curve(pos=([cell[i][0],cell[i][1]],[cell2[j][0],cell2[j][1]]))<br /><br /><br />Here is the code with indentation<br />http://paste.pocoo.org/show/216285/Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5582832867045387729.post-27600788148595968982010-05-12T14:05:00.000-07:002010-05-12T14:21:16.041-07:00Python 047 pyprocessing + mouseevent + color<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzlNuPd0nd1lIENVOCoq8aTN8vSUUwGkh_LzED9lEzpnNQnfmMl11BLVM8xrWBeKK0zx03mhlCM53Fu4Wvc4rhv07MPrtQLmwMd03M5NAkNQvGROvowkuA0LME3lQIZ7UUixvV7BuDT_w/s1600/Screenshot+-+12.05.2010+,+22_55_54.jpg"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 210px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzlNuPd0nd1lIENVOCoq8aTN8vSUUwGkh_LzED9lEzpnNQnfmMl11BLVM8xrWBeKK0zx03mhlCM53Fu4Wvc4rhv07MPrtQLmwMd03M5NAkNQvGROvowkuA0LME3lQIZ7UUixvV7BuDT_w/s320/Screenshot+-+12.05.2010+,+22_55_54.jpg" alt="" id="BLOGGER_PHOTO_ID_5470493222103679762" border="0" /></a><br />#You can easily use mouse-events in pyprocessing. Here I combine mouse position with a RGB-color-value.<br /><br />from pyprocessing import *<br /><br />size(900,600)<br />background(1, 1, 1)<br />strokeWeight(6)<br />x1 = 0<br />y1 = 0<br />x2 = 0<br />y2 = 0<br />x = [0,0,0]<br />y = [0,0,0]<br /><br />def draw():<br /> if mouse.pressed:<br /> x1 = mouse.x<br /> y1 = mouse.y<br /> if mouse.pressed:<br /> x2 = pmouse.x<br /> y2 = pmouse.y<br /> stroke(x1,y1,1)<br /> line(x1, y1, x2, y2)<br />run()<br /><br />Here is the code with identation:<br /><a href="http://bit.ly/c4QD2o">http://bit.ly/c4QD2o</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5582832867045387729.post-29767581443238683962010-04-27T05:08:00.000-07:002010-04-27T11:59:08.013-07:00Python 046 Artifical Life :)<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9egGCuwt6aMzMxXhLGnF_4l7LVko7XTfGarhiYNqSeYXjcRTKYHJpmO0q0uxjIpmibpaQ24wlwyo-HMidijbesCg0G-YaXP9-GFE2QYIzp41U7H39UOtX66fVcsqqufuDyzR5nNyF6ew/s1600/Screenshot+-+27.04.2010+,+14_07_27.jpg"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 146px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9egGCuwt6aMzMxXhLGnF_4l7LVko7XTfGarhiYNqSeYXjcRTKYHJpmO0q0uxjIpmibpaQ24wlwyo-HMidijbesCg0G-YaXP9-GFE2QYIzp41U7H39UOtX66fVcsqqufuDyzR5nNyF6ew/s320/Screenshot+-+27.04.2010+,+14_07_27.jpg" alt="" id="BLOGGER_PHOTO_ID_5464788506869910738" border="0" /></a><br />The eyes move from left to right and back.<br />And the arm are waving around. (at least in my version)<br /><br />#artifical intelligence<br />#shiranutachi = an other form of live :)<br /><br />from visual import *<br />import numpy as np<br />import time<br />from random import randint<br /><br />N = 7 #number of shiranu<br />size = 3*N<br />Shiranu = []<br />leg1 = []<br />leg2 = []<br />arm1 = []<br />arm2 = []<br />eye1 = []<br />eye2 = []<br />eye1black = []<br />eye2black = []<br />arm1angle = []<br />arm2angle = []<br />xx = []<br />yy = []<br />zz = []<br />scene.center = (size/2.0, 0, size/2.0)<br /><br />colors = [color.green, color.yellow, color.blue, color.red]<br /><br />#instantiation<br />for i in range(N):<br /> x = random.randint(0, size)<br /> y = 0<br /> z = random.randint(0, size)<br /> print (x,y)<br /> Shiranu = Shiranu + [sphere(pos=(x,y,z), radius=1, color=colors[i % 4])]<br /> leg1 = leg1 + [curve(pos=[(x-0.5,y,z),(x-0.5,y-1.6,z)], color=colors[i % 4], radius=0.1)]<br /> leg2 = leg2 + [curve(pos=[(x+0.5,y,z),(x+0.5,y-1.6,z)], color=colors[i % 4], radius=0.1)]<br /> arm1 = arm1 + [curve(pos=[(x-0.95,y,z),(x-1.5,y+0.6,z)], color=colors[i % 4], radius=0.1)]<br /> arm2 = arm2 + [curve(pos=[(x+0.95,y,z),(x+1.5,y+0.6,z)], color=colors[i % 4], radius=0.1)]<br /> eye1 = eye1 + [sphere(pos=(x-0.40,y+0.1,z+0.67), radius=0.3, color=color.white)]<br /> eye2 = eye2 + [sphere(pos=(x+0.40,y+0.1,z+0.67), radius=0.3, color=color.white)]<br /> eye1black = eye1black + [sphere(pos=(x-0.45,y+0.1,z+0.90), radius=0.1, color=color.black)]<br /> eye2black = eye2black + [sphere(pos=(x+0.45,y+0.1,z+0.90), radius=0.1, color=color.black)]<br /> xx = xx + [x]<br /> yy = yy + [y]<br /> zz = zz + [z]<br /> <br />#motion<br />t = 0<br />dt = 0.1 #better not change<br />while t<3000:<br /> t += dt<br /> #todo: armmovement isnt ready<br /> if t % 3.1415 > 2.0:<br /> arm1angle = radians(t)<br /> if t % 3.1415 < 1.0:<br /> arm1angle = radians(-t)<br /> else:<br /> pass<br /> print arm1angle<br /> for i in range(N):<br /> eye1black[i].pos.x = eye1black[i].pos.x + cos(t+i/1)/180 #this is for eye-movement<br /> eye2black[i].pos.x = eye2black[i].pos.x + cos(t+i/1)/180<br /> #todo: armmovement isnt ready<br /> arm1[i].pos[0] = (xx[i]-0.95,yy[i],zz[i])<br /> arm1[i].pos[1] = (xx[i]-0.95+cos(arm1angle)*1, yy[i]+sin(arm1angle)*1, zz[i])<br /> if 200 > degrees(arm1angle) > 90:<br /> pass<br /> else:<br /> arm2[i].pos[0] = (xx[i]+0.95,yy[i],zz[i])<br /> arm2[i].pos[1] = (xx[i]+0.95+cos(arm1angle)*1, yy[i]+sin(arm1angle)*1, zz[i])<br /> time.sleep(0.001)Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-5582832867045387729.post-54542075415929674942010-04-24T01:33:00.001-07:002010-04-27T05:25:18.446-07:00Python 045 Lorentz force<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSjqaLn8bMao7EhL0lQQopUolcvceFO0qSCyGXVO7r4LFUyJUGl2zZdGTD55Rk6Xs5RF9tf-5pCbfeZxVP53XgVT2CYXF6vzJoUm79GS72QmOJrO1DHExE-GxgfroetFHmTtI-vaxmab0/s1600/lorentzkraft.jpg"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 217px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSjqaLn8bMao7EhL0lQQopUolcvceFO0qSCyGXVO7r4LFUyJUGl2zZdGTD55Rk6Xs5RF9tf-5pCbfeZxVP53XgVT2CYXF6vzJoUm79GS72QmOJrO1DHExE-GxgfroetFHmTtI-vaxmab0/s320/lorentzkraft.jpg" alt="" id="BLOGGER_PHOTO_ID_5463619490776601010" border="0" /></a><br /><br />import time<br />from visual import *<br /># lorentzkraft<br /><br />scene.title="..."<br />scene.width=600<br />scene.height=600<br />scene.autoscale = 0<br />scene.forward = (-1,-.5,-1)<br />R = 0.1<br /> <br />avector = [2,1,2]<br />bvector = [1,0,0]<br />cvector = cross(avector,bvector)<br /><br />a = arrow(pos=(0,0,0), axis=avector, shaftwidth=R, color=color.white)<br />b = arrow(pos=(0,0,0), axis=bvector, shaftwidth=R, color=crayola.green)<br />c = arrow(pos=(0,0,0), axis=cvector, shaftwidth=R, color=crayola.yellow)<br /><br />alabel=label(pos=avector, text="dl", yoffset=-5, opacity=0, box=0, line=0)<br />blabel=label(pos=bvector, text="B", yoffset=-5, opacity=0, box=0, line=0)<br />clabel=label(pos=cvector, text="F", yoffset=-5, opacity=0, box=0, line=0)<br /><br />line1 = sphere(radius=0.01)<br />line1.trail = curve()<br />line2 = sphere(radius=0.01)<br />line2.trail = curve()<br /><br />size = .1<br />for n in range(3000):<br /> avectorold = avector<br /> cvectorold = cvector<br /><br /> avector[0] = sin(n/10.0*size)<br /> a.axis.x = avector[0]<br /> avector[1] = sin(n/10.0*size*1.83)<br /> a.axis.y = avector[1]<br /> avector[2] = sin(n/10.0*size*1.33)<br /> a.axis.z = avector[2]<br /><br /> cvector = cross(avector,bvector)<br /> c.axis = cvector<br /><br /> #LABEL<br /> alabel.pos = avector<br /> blabel.pos = bvector<br /> clabel.pos = cvector<br /> alabel.text = "dl: " + str(avector)<br /> blabel.text = "B: " + str(bvector)<br /> clabel.text = "F: " + str(cvector)<br /><br /> #TRAIL<br /> line1.trail.append(pos=avector)<br /> line2.trail.append(pos=cvector, color=color.yellow)<br /> time.sleep(0.1)Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-5582832867045387729.post-72583984616945090082010-04-24T01:28:00.000-07:002010-04-24T01:29:49.326-07:00Python 044 Charges<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizj7ty0mgQptmdqscqGFb0WOE0MJFUf-2tbd8z1tpSudh8cxf0tSAOAxYjanDjhsbUdWUvRzDHch-oC8VWDvk64qimT2fxhKGiSycZzB2sgOXZLvsEWJjQQwP3n-FT2xL6fUwj8BLvSVI/s1600/charge.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 290px; height: 320px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizj7ty0mgQptmdqscqGFb0WOE0MJFUf-2tbd8z1tpSudh8cxf0tSAOAxYjanDjhsbUdWUvRzDHch-oC8VWDvk64qimT2fxhKGiSycZzB2sgOXZLvsEWJjQQwP3n-FT2xL6fUwj8BLvSVI/s320/charge.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5463618349790869826" /></a><br /><br /><br /><br />#coulomb force 2-dimensional<br />#visualised with vpython-spheres<br />#strongest field = color red<br />#lowest field = color blue<br /><br />from visual import sphere, scene<br />from numpy import log<br />scene.center = (25,25,0)<br /><br />charge = [ #posx, posy, charge<br /> [20.01, 20.01, 1],<br /> #[15, 0.01, -3],<br /> [20.01, 25.21, -1]<br /> ]<br /><br />#compute the field strength<br />const = 8.988*10**9 #Vm/As <br />def field(posxtest,posytest,posx,posy,charge):<br /> dx = abs(posxtest-posx)<br /> dy = abs(posytest-posy)<br /> r = (dx**2+dy**2)**(0.5)<br /> E = const * charge / r<br /> return E<br /><br />posxtest = range(1,70)<br />posytest = range(1,40)<br /><br />for x in posxtest:<br /> for y in posytest:<br /> e = 0<br /> for elem in charge: #ok<br /> e += field(x,y,elem[0],elem[1],elem[2])<br /> colorfactor = 2000000000<br /> #print e/colorfactor<br /> ball = sphere(pos=[x,y],radius=0.7)<br /> if e >= 0:<br /> ball.color = [(e/colorfactor),0,0]<br /> if e < 0:<br /> ball.color = [0,0,(abs(e/colorfactor))]Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5582832867045387729.post-76008819387825645572010-02-17T06:37:00.000-08:002010-02-17T06:42:08.767-08:00Python 043 Matplotlib + random + select<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh27RN8CLrVeOFhlVW0WY0nsXlH59P_wMKqu1TDVJi6d4Oq0Gm7Tk4HCXUQ5ZDqypXFiHeehQnLiANecJnXkpvKVEtVEV1wibqpuw6npBgXVy5Yhn0ysVCbWXTg2zWmk64tKzcz-MESbJM/s1600-h/a.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 242px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh27RN8CLrVeOFhlVW0WY0nsXlH59P_wMKqu1TDVJi6d4Oq0Gm7Tk4HCXUQ5ZDqypXFiHeehQnLiANecJnXkpvKVEtVEV1wibqpuw6npBgXVy5Yhn0ysVCbWXTg2zWmk64tKzcz-MESbJM/s320/a.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5439222060604274642" /></a><br /><br />import numpy as np<br />import scipy<br />from scipy import *<br />import matplotlib.pyplot as plt<br /><br />x = np.random.randint(0, 10, 10000)<br />x = x.reshape(100,100)<br /><br />a = select([x > 8, x > 7],[x,x+10]) <br /><br />plt.imshow(a)<br />plt.show()Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5582832867045387729.post-20472885306805540582009-12-24T10:41:00.001-08:002010-02-17T06:42:29.966-08:00Python 042 Ball springt durchs Gelände<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_Hvpul2tyznnWqFHmDwuDSeSMPFC_tlRviD_wLZaTXFLZT48WzwF5KCvHseH2nugTTweaebhLmXK_Xm_YpbQNSWG2EE23HefHzvQqOn0er2YiZ2Yy9TnotYjrQD5dfTN_tv6AoMAstxQ/s1600-h/Screenshot+-+24.12.2009+,+19_37_34.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 165px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_Hvpul2tyznnWqFHmDwuDSeSMPFC_tlRviD_wLZaTXFLZT48WzwF5KCvHseH2nugTTweaebhLmXK_Xm_YpbQNSWG2EE23HefHzvQqOn0er2YiZ2Yy9TnotYjrQD5dfTN_tv6AoMAstxQ/s320/Screenshot+-+24.12.2009+,+19_37_34.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5418874805149619362" /></a><br /><br />from visual import *<br />from math import *<br />import numpy as np<br />import time<br /><br />scene.center=(10,0,5)<br /><br />l = 2.5<br />#coordinate system<br />curve(pos=[(-l/2,0,0),(2*l,0,0)],radius=0.05,color=color.green)<br />curve(pos=[(0,-l/2,0),(0,2*l,0)],radius=0.05,color=color.blue)<br />curve(pos=[(0,0,-l/2),(0,0,2*l)],radius=0.05,color=color.red)<br /><br />xwidth=40<br />zwidth=40<br />ebene = []<br />normal = []<br /><br />#ground surface<br />for x in range(xwidth):<br /> ebene.append([])<br /> normal.append([])<br /> for z in range(zwidth):<br /> ebene[x].append(sin(x/4.0)+sin(z/4.0)) #FUNCTION<br /> normal[x].append(0)<br /><br />#draw ground surface<br />for x in range(xwidth-1):<br /> for z in range(zwidth-1):<br /> curve(pos=[(x,ebene[x][z],z),(x+1,ebene[x+1][z],z)],radius=.1,color=color.green)<br /> curve(pos=[(x,ebene[x][z],z),(x,ebene[x][z+1],z+1)],radius=.1,color=color.green)<br /><br />#ball<br />ball = sphere(pos=(8,4,11),radius=.3)<br />vektor = [-0,-0.02,-0]<br />ball.trail = curve(color=ball.color, radius=.1)<br /><br />#calculate surface normal<br />def surfacenormal(pointx,pointz):<br /> pointy = sin(pointx/4.0)+sin(pointz/4.0) #FUNCTION<br /> start = (pointx,pointy,pointz)<br /> #derivative and cross product of fw and fu<br /> fu = np.array([1,0.25*cos(pointx/4.0),0]) #FUNCTION <br /> fw = np.array([0,0.25*cos(pointz/4.0),1]) #FUNCTION<br /> fv = np.cross(fw,fu)<br /> end = (fv[0]+pointx,fv[1]+pointy,fv[2]+pointz)<br /> normal = curve(pos=[start, end])<br /> return normal.pos<br /><br />t=0<br />veca = [0,0,0]<br />vecc = [0,0,0]<br />#movement<br />while 1:<br /> t += 1<br /> ball.pos = ball.pos + vektor<br /> ball.trail.append(pos=ball.pos)<br /> if (ball.pos.y <= (sin(int(ball.pos.x/4.0))+sin(int(ball.pos.z/4.0)))): #FUNCTION <br /> veca[0] = -vektor[0] #incoming vector<br /> veca[1] = -vektor[1]<br /> veca[2] = -vektor[2] <br /> vecb = surfacenormal(int(ball.pos.x),int(ball.pos.z)) #surface normal<br /> vecc[0] = vecb[1][0]-vecb[0][0]<br /> vecc[1] = vecb[1][1]-vecb[0][1]<br /> vecc[2] = vecb[1][2]-vecb[0][2] <br /> vecref = 2*norm(vecc)-norm(veca)<br /> vektor = vecref * mag(veca)<br /><br /> vektor[1]=(vektor[1]-0.0001)*0.999 #Daempfung (vereinfacht)<br /> time.sleep(.001)Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5582832867045387729.post-75258908623411563082009-12-24T08:59:00.000-08:002010-02-17T06:42:53.152-08:00Python 041 Winkel zwischen landender Kugel und OberflächennormaleDas Programm gibt den Winkel an der zwischen dem Vektor einer auf den Boden fallenden Kugel und der Oberflächennormale liegt.<br /><br />from visual import curve, scene, sphere, color, array<br />from math import *<br />import numpy as np<br />import time<br /><br />scene.center=(10,0,5)<br /><br />l = 2.5<br />#coordinate system<br />curve(pos=[(-l/2,0,0),(2*l,0,0)],radius=0.05,color=color.green)<br />curve(pos=[(0,-l/2,0),(0,2*l,0)],radius=0.05,color=color.blue)<br />curve(pos=[(0,0,-l/2),(0,0,2*l)],radius=0.05,color=color.red)<br /><br />xwidth=22<br />zwidth=11<br />ebene = []<br />normal = []<br /><br />#ground surface<br />for x in range(xwidth):<br /> ebene.append([])<br /> normal.append([])<br /> for z in range(zwidth):<br /> ebene[x].append(sin(x/4.0)+sin(z/4.0)) #FUNCTION<br /> normal[x].append(0)<br /><br />#draw ground surface<br />for x in range(xwidth-1):<br /> for z in range(zwidth-1):<br /> curve(pos=[(x,ebene[x][z],z),(x+1,ebene[x+1][z],z)],radius=.1,color=color.green)<br /> curve(pos=[(x,ebene[x][z],z),(x,ebene[x][z+1],z+1)],radius=.1,color=color.green)<br /><br />#ball<br />ball = sphere(pos=(10,5,5),radius=.3)<br />vektor = [-0,-0.02,-0]<br /><br />#calculate surface normal<br />def surfacenormal(pointx,pointz):<br /> pointy = sin(pointx/4.0)+sin(pointz/4.0) #FUNCTION<br /> start = (pointx,pointy,pointz)<br /> #derivative and cross product of fw and fu<br /> fu = np.array([1,0.25*cos(pointx/4.0),0]) #FUNCTION <br /> fw = np.array([0,0.25*cos(pointz/4.0),1]) #FUNCTION<br /> fv = np.cross(fw,fu)<br /> end = (fv[0]+pointx,fv[1]+pointy,fv[2]+pointz)<br /> normal = curve(pos=[start, end])<br /> #print(normal.pos)<br /> return normal.pos<br /><br />t=0<br />veca = [0,0,0]<br />vecc = [0,0,0]<br />#movement<br />while 1:<br /> t += 1<br /> ball.pos = ball.pos + vektor<br /> if (ball.pos.y <= (sin(int(ball.pos.x/4.0))+sin(int(ball.pos.z/4.0)))): #FUNCTION #maybe round()<br /> veca[0] = -vektor[0] #incoming vector<br /> veca[1] = -vektor[1]<br /> veca[2] = -vektor[2] <br /> vecb = surfacenormal(int(ball.pos.x),int(ball.pos.z)) #surface normal<br /> vecc[0] = vecb[1][0]-vecb[0][0]<br /> vecc[1] = vecb[1][1]-vecb[0][1]<br /> vecc[2] = vecb[1][2]-vecb[0][2] <br /> zaehler = veca[0]*vecc[0]+veca[1]*vecc[1]+veca[2]*vecc[2]<br /> nenner = (np.sqrt((veca[0])**2+(veca[1])**2+(veca[2])**2)*np.sqrt((vecc[0])**2+(vecc[1])**2+(vecc[2])**2))<br /> cosalpha = zaehler/nenner<br /> alpha = np.arccos(cosalpha)<br /> winkel = np.degrees(alpha)<br /> print(winkel)<br /> <br /> time.sleep(.01)Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5582832867045387729.post-36654989220589087202009-12-23T22:47:00.000-08:002010-02-17T06:41:45.141-08:00Python 040 Normalenvektoren einer Fläche / surface normals<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoSnWGX5zij4RLs34bfjCkQK4ixcMN2FguhA-oSKlOVaU8GjGLs410m3d4EbSHjRkTgoYvYQLx3Eo7VyIZ0ujZCpijpUnL6I3WnJMtOoARQjauRHN1ScU3F7DKIpI6eLkUEQ0af1B657Y/s1600-h/Screenshot+-+24.12.2009+,+07_49_12.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 126px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoSnWGX5zij4RLs34bfjCkQK4ixcMN2FguhA-oSKlOVaU8GjGLs410m3d4EbSHjRkTgoYvYQLx3Eo7VyIZ0ujZCpijpUnL6I3WnJMtOoARQjauRHN1ScU3F7DKIpI6eLkUEQ0af1B657Y/s320/Screenshot+-+24.12.2009+,+07_49_12.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5418691455183810002" /></a><br /><br />from visual import curve, scene, sphere, color, array<br />from math import *<br />xwidth=22<br />zwidth=11<br />ebene = []<br />for x in range(xwidth):<br /> ebene.append([])<br /> for z in range(zwidth):<br /> ebene[x].append(sin(x/4.0)+sin(z/4.0)) #FUNCTION<br />for x in range(xwidth-1):<br /> for z in range(zwidth-1):<br /> curve(pos=[(x,ebene[x][z],z),(x+1,ebene[x+1][z],z)],radius=.1,color=color.green)<br /> curve(pos=[(x,ebene[x][z],z),(x,ebene[x][z+1],z+1)],radius=.1,color=color.green)<br />for i in range(xwidth):<br /> pointx = i<br /> for j in range(zwidth):<br /> pointz = j<br /> pointy = sin(pointx/4.0)+sin(pointz/4.0) #FUNCTION<br /> start = (pointx,pointy,pointz)<br /> #derivative<br /> fu = [1,0.25*cos(pointx/4.0),0] #FUNCTION<br /> fw = [0,0.25*cos(pointz/4.0),1] #FUNCTION<br /> fv = [0,0,0] #will change next line<br /> #cross product of fw and fu<br /> fv[0] = fw[1]*fu[2]-fu[1]*fw[2] <br /> fv[1] = fw[2]*fu[0]-fu[2]*fw[0]<br /> fv[2] = fw[0]*fu[1]-fu[0]*fw[1]<br /> end = (fv[0]+pointx,fv[1]+pointy,fv[2]+pointz)<br /> normal = curve(pos=[start, end])Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5582832867045387729.post-41432159064412576242009-12-21T09:35:00.000-08:002009-12-21T09:36:45.164-08:00Python 039: Partielle Ableitung bzw. Gradientfrom sympy import *<br />import numpy<br /><br />x = Symbol('x')<br />y = Symbol('y')<br />gleichung = x**2+y**2<br />xx = diff(gleichung, x)<br />yy = diff(gleichung, y)<br /><br />vektor = numpy.array((xx, yy))<br />print vektor<br /><br />x = 1<br />y = 1<br /><br />print(xx.evalf)Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5582832867045387729.post-53946169390981749492009-12-21T09:32:00.000-08:002009-12-21T09:34:09.946-08:00Python 038: Faltung einer Dreiecksfunktion mit einer Rechteckfunktionfrom numpy import *<br />from pylab import *<br />#print convolve.__doc__<br />#a = arange(12)<br />a = [0,0,0,1,2,3,4,5,6,7,8,7,6,5,4,3,2,1,0,0,0] #Dreieck<br />b = [0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0]<br />h = convolve(a,b,mode=0)<br />i = convolve(a,b,mode=1)<br />#j = convolve(a,b,mode=2)<br />print(h)<br />print(i)<br />#print(j)<br />plot(i)<br />hold(True)<br />#plot(j)<br />grid(True)<br />show()Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5582832867045387729.post-54678231549141386552009-11-21T09:42:00.000-08:002009-11-21T09:43:40.080-08:00Python 037schmalere Streifen, welche auf den andern Ball zeigen<br /><br />from visual import *<br /><br />ball1 = sphere()<br />ball1.pos = (3,0,0)<br />ball2 = sphere()<br />ball2.pos = (0,0,0)<br />ball2.color = color.green<br />ball3 = sphere()<br />ball3.pos = (-3,0,0)<br />ball3.color = color.cyan<br /><br />size = 20<br />t=0<br />while(1):<br /> rate(10)<br /> t += 1<br /> ball1.pos.x = size*sin(t/10.0)<br /> ball1.pos.y = size*sin(t/20.0)<br /> ball1.pos.z = size*sin(t/30.0) <br /> ball3.pos.x = size*cos(t/10.0)<br /> ball3.pos.y = size*sin(t/20.0)<br /> ball3.pos.z = size*sin(t/30.0)<br /> tail1 = curve(pos=(ball1.pos,(1*ball3.pos+5.0*ball1.pos)/6.0))<br /> tail1.radius = 0.2Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5582832867045387729.post-71997473135448314802009-11-21T08:57:00.000-08:002009-11-21T08:58:45.674-08:00Python 036<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirPv3lnQZnz74ZJsrAlkCBfvZdysgkaJdvHvPX9VRXV6Rj4aaD0-juHbzMPUoQ1kUDjtb75Ka8N_uwTfr85sazzjnfVNrFgITU74JKPrX3Ph-HCAot13ufMovhir_HV3AqVnXP3ERY5IM/s1600/a.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 164px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirPv3lnQZnz74ZJsrAlkCBfvZdysgkaJdvHvPX9VRXV6Rj4aaD0-juHbzMPUoQ1kUDjtb75Ka8N_uwTfr85sazzjnfVNrFgITU74JKPrX3Ph-HCAot13ufMovhir_HV3AqVnXP3ERY5IM/s320/a.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5406602352237738386" /></a><br /><br />from visual import *<br /><br />ball1 = sphere()<br />ball1.pos = (3,0,0)<br />ball2 = sphere()<br />ball2.pos = (0,0,0)<br />ball2.color = color.green<br />ball3 = sphere()<br />ball3.pos = (-3,0,0)<br />ball3.color = color.cyan<br /><br />size = 10<br />t=0<br />while(1):<br /> rate(30)<br /> t += 1<br /> ball1.pos.x = size*cos(t/50.0)<br /> ball1.pos.y = size*sin(t/50.0)<br /> ball3.pos.x = size*(-cos(t/30.0))<br /> ball3.pos.z = size*(-sin(t/30.0))<br /> tail1 = curve(pos=(ball1.pos,((1*ball3.pos)+(0.3*ball1.pos))))Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5582832867045387729.post-14718539494039847552009-11-21T08:41:00.000-08:002009-11-21T08:43:36.280-08:00Python 035<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghWRSh-t_XQHmYOZxQpB-3K7JjlfpEMCmo5RhGzfi7fdNffhLl9184FqIvtlTHO4K5Da-VP75B-sh6TdZlvagk1U8SRhsBNU0OQhXLqKl4LUmW8917vnbp7iA8PJdhoaUzbIxR8Lho9TY/s1600/Screenshot+-+21.11.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 297px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghWRSh-t_XQHmYOZxQpB-3K7JjlfpEMCmo5RhGzfi7fdNffhLl9184FqIvtlTHO4K5Da-VP75B-sh6TdZlvagk1U8SRhsBNU0OQhXLqKl4LUmW8917vnbp7iA8PJdhoaUzbIxR8Lho9TY/s320/Screenshot+-+21.11.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5406598193392454130" /></a><br /><br />from visual import *<br /><br />ball1 = sphere()<br />ball1.pos = (3,0,0)<br />ball2 = sphere()<br />ball2.pos = (0,0,0)<br />ball2.color = color.green<br />ball3 = sphere()<br />ball3.pos = (-3,0,0)<br />ball3.color = color.cyan<br /><br />size = 10<br />t=0<br />while(1):<br /> rate(30)<br /> t += 1<br /> ball1.pos.x = size*cos(t/20.0)<br /> ball1.pos.y = size*sin(t/20.0)<br /> ball3.pos.x = size*(-cos(t/20.0))<br /> ball3.pos.z = size*(-sin(t/20.0))<br /> tail1 = curve(pos=(ball1.pos,ball3.pos))Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5582832867045387729.post-9348740175031334612009-07-23T06:33:00.000-07:002009-07-23T06:36:12.937-07:00Python 034<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAbDJM-h6nKes1e-cHrhEBa3GNvZYEOelOuRbBXkOZEfY_CYZwi1h7sf4jXl9X-BJvF7BNTj0YZWBTEekshy7lbsmt2sTyp-jx9s-qGpnNVThoaCepqzpXV5_PqfxiYOiHWLt8hUkDZ2Y/s1600-h/screenshot.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 160px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAbDJM-h6nKes1e-cHrhEBa3GNvZYEOelOuRbBXkOZEfY_CYZwi1h7sf4jXl9X-BJvF7BNTj0YZWBTEekshy7lbsmt2sTyp-jx9s-qGpnNVThoaCepqzpXV5_PqfxiYOiHWLt8hUkDZ2Y/s320/screenshot.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5361648440353750818" /></a><br /><br />Ich habe jetzt eine künstliche Welt erstellt. Die grünen Kugeln stellen Zellen dar. Die blauen Kugeln stellen Wasser dar. Wenn die Zellen dicht am Wasser liegen, werden Versorgungsarme aufgebaut. Die Zelle wächst und der Wasseranteil wird kleiner. <br /><br />from visual import *<br />import random<br /><br />scene.width=400<br />scene.height=700<br /><br />arrayx = 300<br />arrayy = 300<br />anzahlzellen = arrayx<br />anzahlwasser = arrayx<br />scene.center=(arrayx/2,arrayy/2,0)<br /><br />t=0<br />zelle = []<br />wasser = []<br />verbindung = []<br />for x in range(arrayx):<br /> for y in range(arrayy):<br /> zelle.append(0)<br /> wasser.append(0)<br /> verbindung.append(0)<br /><br />def zufall():<br /> ax = random.random()<br /> ay = random.random()<br /> ax = ax * arrayx<br /> ay = ay * arrayy<br /> ort =(ax,ay)<br /> return ort<br /><br />for i in range(anzahlzellen):<br /> ort = zufall()<br /> zelle[i+1] = sphere(pos=(ort), color=(.0,.9,.0))<br /><br />for i in range(anzahlwasser):<br /> ort = zufall()<br /> wasser[i+1] = sphere(pos=(ort), color=(.0,.9,.9))<br /><br />for i in range(anzahlzellen):<br /> for j in range(anzahlwasser):<br /> abstand = sqrt(((zelle[i+1].pos[0]-wasser[j+1].pos[0])**2) + ((zelle[i+1].pos[1]-wasser[j+1].pos[1])**2))<br /> if abstand <= 11:<br /> verbindung[i*arrayx+j] = curve(pos=[(zelle[i+1].pos[0],zelle[i+1].pos[1]),(wasser[j+1].pos[0],wasser[j+1].pos[1])], radius=.2, color=color.green)<br /> #if verbindung.pos != (0,0,0):<br /> zelle[i+1].radius += .5<br /> wasser[j+1].radius -= .2Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5582832867045387729.post-83188113936686461252009-07-22T13:28:00.001-07:002009-07-22T13:30:40.489-07:00Matlab 006<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-MiVqSbjX9XAuMHDt4l98buaFBn_2U6kTun0VfHeP933FGgSAIE5xsuNUtgW_kr_UwioQBxiVWwrqdzmsFcOP7hI891aD7cDPVF_yalwhsLhr7PPghIVMbVJ7RPI8dtbTJv1ZpqdFxt0/s1600-h/atoll.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 176px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-MiVqSbjX9XAuMHDt4l98buaFBn_2U6kTun0VfHeP933FGgSAIE5xsuNUtgW_kr_UwioQBxiVWwrqdzmsFcOP7hI891aD7cDPVF_yalwhsLhr7PPghIVMbVJ7RPI8dtbTJv1ZpqdFxt0/s320/atoll.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5361384123681863218" /></a><br /><br />clear all; clc;<br />N = 80;<br />I = zeros(N,N);<br />kN = linspace(1,N,N);<br />[x,y] = meshgrid(kN);<br />size = .5;<br />A0 = N/2; B0 = N/2; % A=B = Kreis % Halbachsen <br />x0 = N/2; % Mitte im Feld<br />y0 = N/2;<br />F0 = ( ((x-x0)/A0).^2 + ((y-y0)/B0).^2 <= size);<br />abstand = (sqrt((x-x0).^2 + (y-y0).^2)).^2;<br />var =130;<br />F1 = exp(-(abstand-var) .* (abstand-var)/20000) %gauss<br />surf(F1)Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5582832867045387729.post-27602943582850294122009-07-22T13:22:00.001-07:002009-07-22T13:22:59.526-07:00Python 033<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOM3TRdIsim06VMqaoTyYPVzi3Cp9E546FfljBNCPCuVIMRVVmCxPgGGJKJIOODXCwcNrHTdqQbE3JfrVSjgGcY4_qG2paFnDw1afVpeootYkspJJmaQxw8ElYTKQ94XUKv5N8c1Rssfk/s1600-h/screenshot.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 290px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOM3TRdIsim06VMqaoTyYPVzi3Cp9E546FfljBNCPCuVIMRVVmCxPgGGJKJIOODXCwcNrHTdqQbE3JfrVSjgGcY4_qG2paFnDw1afVpeootYkspJJmaQxw8ElYTKQ94XUKv5N8c1Rssfk/s320/screenshot.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5361382510178117554" /></a><br /><br />Hier nochmal ein anderer, einfacherer Programmcode:<br /><br />from visual import *<br />import random<br /><br />scene.width=900<br />scene.height=700<br />scene.center=(22,11,1)<br /><br />nball = 2<br />xvar=10000<br /><br />ball = []<br />line = []<br />for x in range(xvar):<br /> ball.append(1)<br /> line.append(1)<br /><br /># Ball und Linie deklarieren<br />ball[1] = sphere(pos=(0,0,0), radius=0.0001)<br />ball[2] = sphere(pos=(0,0,0), radius=0.0001)<br />line[1] = curve(radius=1, color=color.black)<br /><br />t = 0<br /><br />k = 1<br />l = 6<br />m = 6<br />n = 1<br /><br />faktor = 100<br />for i in range(1000):<br /> t += 0.01<br /> for i in range(nball):<br /> xa = 2*sin(t)+sin(13*t)<br /> ya = 2*cos(t)+cos(13*t) <br /> ball[1].pos = (xa*faktor,ya*faktor,0)<br /> line[1].append((ball[1].pos), color=color.green)Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5582832867045387729.post-67940899583735667202009-07-22T13:14:00.001-07:002009-07-22T13:14:37.792-07:00Python 032<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzjsORAqSTWpXShflToAFBqlqBbtj8ZT_njwiWkUR2-lRaCkAKHB4YCsaZ7vMUbdNfKq65PyMqCRLDj5OCDmBe27POw6JR0cZwIzvBonRbq2gzptF-lttCVmEqHgNZxMkRNvXb1vhSyr0/s1600-h/screenshot.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 186px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzjsORAqSTWpXShflToAFBqlqBbtj8ZT_njwiWkUR2-lRaCkAKHB4YCsaZ7vMUbdNfKq65PyMqCRLDj5OCDmBe27POw6JR0cZwIzvBonRbq2gzptF-lttCVmEqHgNZxMkRNvXb1vhSyr0/s320/screenshot.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5361380466252076274" /></a><br /><br />from visual import *<br />import random<br /><br />scene.width=900<br />scene.height=700<br />scene.center=(22,11,1)<br /><br />nball = 2<br />xvar=10000<br /><br />ball = []<br />line = []<br />for x in range(xvar):<br /> ball.append(1)<br /> line.append(1)<br /><br /># Ball und Linie deklarieren<br />ball[1] = sphere(pos=(0,0,0), radius=0.0001)<br />ball[2] = sphere(pos=(0,0,0), radius=0.0001)<br />line[1] = curve(radius=1, color=color.black)<br /><br />t = 0<br /><br />k = 1<br />l = 6<br />m = 6<br />n = 1<br /><br />faktor = 100<br />for i in range(1000):<br /> t += 0.01<br /> for i in range(nball):<br /> ball[1].pos = (sin(t*k)*faktor,cos(t*l)*faktor,0)<br /> ball[2].pos = (sin(t*m)*faktor/1,cos(t*n)*faktor/1,0)<br /> var = ball[1].pos + ball[2].pos<br /> line[1].append((var), color=color.green)Unknownnoreply@blogger.com0