## Squares

General FreeBASIC programming questions.
albert
Posts: 5676
Joined: Sep 28, 2006 2:41
Location: California, USA
Thanks Richard!!

I'm going to try to rework the "Picto-Font" program.
And design an editor for it..

My problem with it was it wouldn't record all the mouse movements and clicks.

I've got 330 trig programs done so far. I'll go back thru them and post the cooler looking ones.

Some of them were dictated to me, by an invisible voice. ??
Richard
Posts: 3013
Joined: Jan 15, 2007 20:44
Location: Australia
@ Albert. Here is a "fractal point art" technique that uses a number of alternative equations to get from the previous point to the next. The particular equation used is randomly selected from those listed, but has a relative probability specified by the last number in that equation's data statements. Here four equations are used to produce a fern. Change the values in the table or the number of equations to experiment with variations and other patterns.

Code: Select all

`'=======================================================' fern drawn with points'=======================================================Data 4Data  0.85,  0.04, -0.04, 0.85,   0,  1.6, 0.85Data -0.15,  0.28,  0.26, 0.24,   0, 0.44, 0.07Data   0.2, -0.26,  0.23, 0.22,   0,  1.6, 0.07Data     0,     0,     0, 0.16,   0,    0, 0.01'=======================================================Dim As Integer m, iRead mDim As Double a(m), b(m), c(m), d(m), e(m), f(m), p(m)' set up the equation and probability tableDim As Double pt = 0, piFor i = 1 To m    Read a(i), b(i), c(i), d(i), e(i), f(i), pi    pt = pt + pi    p(i) = ptNext iDim As Double xscale, yscale, xoffset, yoffset, x, y, newx, newyScreen 9xscale = 130yscale = 34xoffset = 300yoffset = -10x = 0y = 0For n As Longint = 1 To 1000000    ' select the equation    pi = Rnd * pt    i = 0    Do        i = i + 1    Loop While pi > p(i)    ' solve for new point    newx = a(i) * x + b(i) * y + e(i)    newy = c(i) * x + d(i) * y + f(i)    x = newx    y = newy    If n > 10 Then Pset(x * xscale + xoffset, y * yscale + yoffset), 6    If Len(Inkey) > 0 Then Exit ForNext nLocate 24,01Color 7Print "Press any key to end.";While Len(Inkey) > 0 : Wend'=======================================================Sleep'=======================================================`
dodicat
Posts: 6497
Joined: Jan 10, 2006 20:30
Location: Scotland
Hi Albert, good to see you back.
I've been so impressed by your nose doodle and Richard's fern that I've incorporated them into Rollie~s eye character recognition concept.

Code: Select all

`'Albert's head and nose, Richard's fern, Rolliebollocks inspiration, meet BRACKENType d2    As Single mx,my    Dim As Single mw,angEnd TypeSub draw_string(xpos As Integer,ypos As Integer,text As String,colour As Uinteger,size As Single,textangle As Single=0,charangle As Single=0)    Type point2d        As Single x,y        As Uinteger col    End Type    Dim As Integer codenum=128            '(Full Asci 256 if required)    Static As Integer runflag    Static As point2d infoarray()    Redim Preserve As point2d infoarray(64,codenum) '64 = 8 x 8 pixel size    If runflag=0 Then   '                  'scan codenum of codepage once        Dim As Uinteger background=Rgb(0,0,0)        Screenres 10,10,32  '8 x 8 pixels on this screen        Dim count As Integer        For ch As Integer=1 To codenum            Cls            Draw String(1,1),Chr(ch)            For x As Integer=1 To 8  'scan for characters                For y As Integer=1 To 8                    If Point(x,y)<>background Then                        count=count+1                        infoarray(count,ch)=Type<point2d>(x,y)'save pixel position                    End If                 Next y            Next x            count=0        Next ch        runflag=1     End If    If size=0 Then Exit Sub    Dim As point2d temp(1 To 64,codenum),np    Dim As Single cr= 0.01745329,x1,y1,x2,y2 '(4*atn(1))/180=.017453....    #macro rotate(p1,p2,a,d)    np.col=p2.col    np.x=d*(Cos(a*cr)*(p2.x-p1.x)-Sin(a*cr)*(p2.y-p1.y)) +p1.x    np.y=d*(Sin(a*cr)*(p2.x-p1.x)+Cos(a*cr)*(p2.y-p1.y)) +p1.y    #endmacro    #macro _box()    Dim As Single dx=x2-x1,dy=y2-y1    Swap dx,dy:dx=-dx    Dim As Single p1x=x1+dx/2,p1y=y1+dy/2    Dim As Single p2x=x1-dx/2,p2y=y1-dy/2    Dim As Single p3x=x2+dx/2,p3y=y2+dy/2    Dim As Single p4x=x2-dx/2,p4y=y2-dy/2    Dim As Uinteger c=Rgb(255,255,254)    For x As Integer=1 To 2        Line(p1x,p1y)-(p2x,p2y),c        Line(p3x,p3y)-(p4x,p4y),c        Line(p1x,p1y)-(p3x,p3y),c        Line(p2x,p2y)-(p4x,p4y),c        Paint((p1x+p2x+p3x+p4x)/4,(p1y+p2y+p3y+p4y)/4),c,c        c=cpt(z).col    Next x    #endmacro    Dim As point2d cpt(1 To 64),c=Type<point2d>(xpos,ypos),c2    Dim As Single sz =size/2    Dim As Integer dx=xpos,dy=ypos,asci    For z6 As Integer=1 To Len(text)        asci=Asc(Mid(text,z6,1))        For x1 As Integer=1 To 64            temp(x1,asci).x=infoarray(x1,asci).x+dx            temp(x1,asci).y=infoarray(x1,asci).y+dy            temp(x1,asci).col=colour        Next x1        c2=Type<point2d>(xpos+(size*(z6-1)*8)*Cos(textangle*cr),ypos+(size*(z6-1)*8)*Sin(textangle*cr))        For z2 As Integer=1 To 64            rotate(c,temp(z2,asci),textangle,size)            cpt(z2)=np            If charangle<>0 Then                rotate(c2,cpt(z2),charangle,1)                cpt(z2)=np            End If        Next z2        For z As Integer=1 To 64            x1=cpt(z).x-sz*(Cos((textangle+charangle)*cr)):y1=cpt(z).y-sz*(Sin((textangle+CHARANGLE)*cr))            x2=cpt(z).x+sz*(Cos((textangle+charangle)*cr)):y2=cpt(z).y+sz*(Sin((textangle+charangle)*cr))            If infoarray(z,asci).x<>0 Then 'paint only relevant points                 If Abs(size)>1 Then                    _box()                Else                    Pset(cpt(z).x,cpt(z).y),cpt(z).col                End If            End If        Next z        dx=dx+8    Next z6 End SubSub init Constructor    draw_string(0,0,"",0,0)    Screen 0End SubSub draw_balls(b As d2)    Dim  As Uinteger colour(90,90)    #macro rotate(pivotx,pivoty,px,py,a,scale)    var Newx=scale*(Cos(a*.0174533)*(px-pivotx)-Sin(a*.0174533)*(py-pivoty))+pivotx    var Newy=scale*(Sin(a*.0174533)*(px-pivotx)+Cos(a*.0174533)*(py-pivoty))+pivoty    #endmacro    #macro incircle(cx,cy,radius,x,y)    (cx-x)*(cx-x) +(cy-y)*(cy-y)<= radius*radius    #endmacro     If b.mw=0 Then b.mw=1    b.mw=Abs(b.mw)    For x As Integer=b.mx-40 To b.mx+40        For y As Integer=b.my-40 To b.my+40            If incircle(b.mx,b.my,40,x,y) Then                colour(x-b.mx+40,y-b.my+40)=.999999*Point(x,y)            End If        Next y    Next x        Dim As Single dil    For x As Integer=b.mx-40 To b.mx+40        For y As Integer=b.my-40 To b.my+40            If incircle(b.mx,b.my,40,x,y) Then                 rotate(b.mx,b.my,x,y,b.ang,dil)                var dist=Sqr((b.mx-newx)*(b.mx-newx)+(b.my-newy)*(b.my-newy))                dil=(b.mw+(.5-b.mw)*dist/(40*b.mw))                If incircle(b.mx,b.my,(20*b.mw),newx,newy) Then                    Line(NewX-dil/2,NewY-dil/2)-(NewX+dil/2,NewY+dil/2),colour(x-b.mx+40,y-b.my+40),BF                End If            End If        Next y    Next x    'circle(b.mx,b.my),20*b.mwEnd SubSub framecounter    Static As Single frame,fps    frame=frame+1    Static As Single t1,t2    If frame>=fps Then        t1 = Timer        fps = frame/(t1-t2)        Windowtitle "Frames per second = " & fps        t2=Timer        frame=0    End IfEnd SubDim As Integer xres,yres#define incirc(cx,cy,radius,x,y) (cx-x)*(cx-x) +(cy-y)*(cy-y)<= radius*radiusScreen 20,32Screeninfo xres,yres#define length(p1,p2) Sqr( (p1.mx-p2.mx)*(p1.mx-p2.mx)+(p1.my-p2.my)*(p1.my-p2.my))dim as d2 cntre=type<d2>(xres/2,yres/2),ptDim As Integer x1=.4*xres,x2=.6*xres,y1=.5*yresDim As Any Pointer imim = imagecreate(xres,yres)Paint im,(0,0),Rgb(200,200,200)'sleep' fern drawn with points'=======================================================Data 4Data  0.85,  0.04, -0.04, 0.85,   0,  1.6, 0.85Data -0.15,  0.28,  0.26, 0.24,   0, 0.44, 0.07Data   0.2, -0.26,  0.23, 0.22,   0,  1.6, 0.07Data     0,     0,     0, 0.16,   0,    0, 0.01'=======================================================Dim As Integer m, iRead mDim As Double a(m), b(m), c(m), d(m), e(m), f(m), p(m)' set up the equation and probability tableDim As Double _pt = 0, piFor i = 1 To m    Read a(i), b(i), c(i), d(i), e(i), f(i), pi    _pt = _pt + pi    p(i) = _ptNext iDim As Double xscale, yscale, xoffset, yoffset, x, y, newx, newy'Screen 20xscale = 130yscale = 34xoffset = 300yoffset = -10x = 0y = 0For n As Longint = 1 To 1000000    ' select the equation    pi = Rnd * _pt    i = 0    Do        i = i + 1    Loop While pi > p(i)    ' solve for new point    newx = a(i) * x + b(i) * y + e(i)    newy = c(i) * x + d(i) * y + f(i)    x = newx    y = newy    If n > 10 Then Pset im,(x * xscale + xoffset+200, y * yscale + yoffset+300), rgb(n,50,0)    If Len(Inkey) > 0 Then Exit ForNext ndim as double deg1,deg2 , rad=atn(1)/45dim as double c1,c2,s1,s2 ,_x1,_x2,_y1,y2dim as double xctr=xres/2 , yctr=yres/2 , radius,distradius=125for deg1=180 to 360 step 1        c1=cos(deg1*rad)    s1=sin(deg1*rad)        _x1=radius*c1    _y1=radius*s1        for deg2=0 to 360 step .2                    c2=cos(deg2*rad)        s2=sin(deg2*rad)                        _x2=radius*c2*c1*cos(cos(deg2*s1*rad)/(c1*c1))/(deg2*rad*s1)        y2=radius*s2*s1*sin(sin(deg2*c1*rad)/(s1*s1))/(deg2*rad*c1)                pt=type<d2>(xctr+_x1+_x2,yctr+_y1+y2+150)        dist=length(pt,cntre)        if dist < 150 then        pset im,(xctr+_x1+_x2,yctr+_y1+y2+150),rgb(deg1/2,deg2/2,0)        end if                    next        'sleep 1    next For z As Integer=50 To 1 Step -1    Circle im,(x1,y1),z,Rgb(250-4*z,50+z,z),,,,f    Circle im,(x2,y1),z,Rgb(250-4*z,50+z,z),,,,fNext zCircle im,(x1,y1),15,Rgb(250,250,255),,,,fCircle im,(x2,y1),15,Rgb(250,250,255),,,,fCircle im,(x1,y1),15,Rgb(100,00,55)Circle im,(x2,y1),15,Rgb(100,00,55)Circle im,(x1,y1),8,Rgb(60,110,255),,,,fCircle im,(x2,y1),8,Rgb(60,110,255),,,,fCircle im,(x1,y1),4,Rgb(0,0,0),,,1,fCircle im,(x2,y1),4,Rgb(0,0,0),,,1,fPset im,(x1+2,y1),Rgb(255,255,255)Pset im,(x2+2,y1),Rgb(255,255,255)Dim As d2 eyes(1 To 2),bf,centrecentre=Type<d2>(xres/2,yres/2)Dim As Integer cx,cy,r,g,_bDim As Single kx=1.5+Rnd*2,ky=1.5+Rnd*2Dim As Double xdist,ydistDim As String charchar="Hello!"Do        framecounter    cx=cx+kx    cy=cy+ky    Randomize    If incirc(x1,y1,50,cx,cy) Or incirc(x2,y1,50,cx,cy) Then char="Oops"    Select Case Asc(char)    Case 0,7,8,9,10,13,32        char="dunno"    End Select    If cx<0 Then kx=-kx:char=Chr(Int(Rnd*128))    If cx>xres-60*len(char) Then kx=-kx:char=Chr(Int(Rnd*128))    If cy<0 Then ky=-ky:char=Chr(Int(Rnd*128))    If cy>yres-50 Then ky=-ky:char=Chr(Int(Rnd*128))        bf=Type<d2>(cx,cy)    xdist=-10*bf.mx/xres+5    ydist=-10*bf.my/yres+5    x1=.4*xres+2*xdist:x2=.6*xres+2*xdist    y1=.5*yres+2*ydist:y1=.5*yres+2*ydist    Screenlock    Cls    Put(0,0),im,trans    'draw_string(cx-len(char),cy-len(char),char,Rgb(0,100,0),9.6)    for z as integer=1 to 5    draw_string(cx+z,cy-z,char,Rgb(250-50*z,20*z,z),9)    next z    If Len(char)=1 Then        for z as integer=5 to 10        draw_string(.2*xres+2*z,.1*yres,"I sees " &char,Rgb(20*z,0,100),8)        next z    End If        eyes(1)=Type<d2>(x1,y1,3)    eyes(2)=Type<d2>(x2,y1,3)    For z As Integer=1 To 2        draw_balls(eyes(z))    Next z    Screenunlock    Sleep 1,1Loop Until Inkey=Chr(27)`
albert
Posts: 5676
Joined: Sep 28, 2006 2:41
Location: California, USA
Cool fern Richard!!!
==================================

Heres another trig one.

Code: Select all

`dim as integer xres,yresscreen 19screeninfo xres,yresscreenres xres,yresdim as double c1,c2,s1,s2dim as double x1,x2,y1,y2dim as double rad=atn(1)/45dim as double xctr,yctr,radius=175dim as double deg1,deg2,spanxctr=xres/2yctr=yres/2for deg1 = 0 to 360 step .5        c1=cos(deg1*rad)    s1=sin(deg1*rad)*c1+(tan(deg1*rad)/5)        for deg2 = 0 to 360 step 1                c2 = cos(deg2*rad)        s2 = sin(deg2*rad)                x1=radius*c1*c2*c2        x2=radius*c2*sin(deg2*rad*(c1*c2))                y1=radius*s1*s2*sin(s1*s2*10)        y2=radius*s2*cos(deg2*rad*(s1*s2))                pset(xctr+x1+x2,yctr+y1+y2),9            next        sleep 5    nextsleep`
rolliebollocks
Posts: 2655
Joined: Aug 28, 2008 10:54
Location: new york
@Albert

Good to see you back in action!

@Dodicat

I'm fine. I like the eye.
albert
Posts: 5676
Joined: Sep 28, 2006 2:41
Location: California, USA
This one is the earth flying thru space..

Code: Select all

`dim as integer xres,yresscreen 19screeninfo xres,yresscreenres xres,yresdim as double deg1,deg2 , rad1=atn(1)/45 , rad2=atn(1)/22.5dim as double c1,c2,s1,s2 ,x1,x2,y1,y2dim as double xctr=xres/2 , yctr=yres/2 , radiusradius=125for deg1=0 to 360         c1=cos(deg1*rad1)    s1=sin(deg1*rad1)        x1=radius*c1    y1=radius*s1        for deg2=0 to 360 step 1                c2=cos(deg2*rad2)        s2=sin(deg2*rad2)                        x2=radius*s2*log(deg2*rad1*s2)*atn(deg2*rad1*s2/s1)*c1        y2=radius*c2*log(deg2*rad1*c2)*atn(deg2*rad1*c2/c1)*c1                pset(xctr+x1+x2,yctr+y1+y2),9                    next        sleep 1    nextsleep`

I've got one where the earth is going into a space-time warp, it might take a while to find it as i named all 300+ formulas by number instead of names.
albert
Posts: 5676
Joined: Sep 28, 2006 2:41
Location: California, USA
HEY ROLLIE!!!! Check out JESUS !!!

Code: Select all

`dim as integer xres,yresscreen 19screeninfo xres,yresscreenres xres,yresdim as double deg1,deg2 , rad=atn(1)/45dim as double c1,c2,s1,s2 ,x1,x2,y1,y2dim as double xctr=xres/2 , yctr=yres/2 , radiusradius=125for deg1=0 to 360         c1=cos(deg1*rad)    s1=sin(deg1*rad)        x1=radius*c1    y1=radius*s1        for deg2=0 to 360 step 1                    c2=cos(deg2*rad)        s2=sin(deg2*rad)                        x2=radius*c1*cos(cos(deg2*rad)*s2/c1)*cos(deg2*rad*(c1*c2)/s1)*cos(s1*deg2*rad)*c2*s1*2.7        y2=radius*s1*sin(sin(deg2*rad)*c2/s1)*sin(deg2*rad*(s1*s2)/c1)*sin(c1*deg2*rad)*c2*s1*2.7                x2+=radius*c1*cos(cos(deg2*rad)*s2/c1)*cos(deg2*rad*(c1*c2)/s1)*cos(s1*deg2*rad)*c2*s1*2.7        y2+=radius*s1*sin(sin(deg2*rad)*c2/s1)*sin(deg2*rad*(s1*s2)/c1)*sin(c1*deg2*rad)*c2*s1*2.7                x2=x2*c2*cos(cos(deg2*rad*c1))/(c2*c2)        y2=y2*s2*sin(sin(deg2*rad*s1))/(s2*s2)                x2=x2*c2*cos(cos(deg2*rad*c1))/(c2*c2)        y2=y2*s2*sin(sin(deg2*rad*s1))/(s2*s2)                pset(xctr+x1+x2,yctr+y1+y2),9                    next        sleep 1    nextsleep`
dodicat
Posts: 6497
Joined: Jan 10, 2006 20:30
Location: Scotland
Hi All
What is the difference between HEX and HTML when it comes to colours in fb.
I found the HTML values for the seven rainbow colours on the internet and used them with prefix &h to draw the colours.
To do this I just got the raw integers for each &h..... number, and got the interpolating polynomial for 1 through 7 on x axis and the integers on the y axis, and used this polynomial to colour circles.
It works ok, but it shouldn't, for doesn't fb use HEX colours?

Code: Select all

`#macro COMMENT()        integer:     HTML(as given by codes on internet for rainbow)red     16711680 = &hff0000  (I added &h in each case)orange  16753920 = &hffa500yellow  16776960 = &hffff00green   32768    = &h008000blue    255      = &h0000ffindigo  4915330  = &h4b0082violet  15631086 = &hee82eeinterpolating polynomial for the points (1,16711680) (2,16753920) (3,16776960) (4,32768) (5,255) (6,4915330) (7,15631086) is:constant term  is  332425290.9999806coeff of x^ 1 is -728921678.6166223coeff of x^ 2 is  614836832.8944078coeff of x^ 3 is -247868284.6874858coeff of x^ 4 is  51294272.59027503coeff of x^ 5 is -5267711.695833082coeff of x^ 6 is  212958.5152777694#endmacro'(end comment)'MAKE POLYNOMIAL:-dim as double pol(6)pol(0)=332425290.9999806pol(1)=-728921678.6166223pol(2)=614836832.8944078pol(3)=-247868284.6874858pol(4)=51294272.59027503pol(5)=-5267711.695833082pol(6)=212958.5152777694'FUNCTION FOR EVALUATING POLYNOMIAL AT NUMBER:-Function poly(coff() As double,number As double)As double    Dim count As Integer                'evaluates the polynomial    Dim pol As double    Dim deg As Integer=Ubound(coff)    pol = 0    For count = 1 To DEG + 1        pol = pol + coff(count-1) * ((number) ^ (count - 1))    Next count    poly = polEnd Function'DRAW THE COLOURS:-screen 19,32for z as double=1 to 7 step 1    circle(100*z,300),50,poly(pol(),z) ,,,,f    select case z    case 1        draw string(100*z-20,300),"red",rgb(0,0,0)    case 2        draw string(100*z-20,300),"orange",rgb(0,0,0)    case 3      draw string(100*z-20,300),"yellow",rgb(0,0,0)  case 4      draw string(100*z-20,300),"green",rgb(0,0,0)  case 5      draw string(100*z-20,300),"blue",rgb(0,0,0)  case 6    draw string(100*z-20,300),"indigo",rgb(0,0,0)case 7    draw string(100*z-20,300),"violet",rgb(0,0,0)        end selectnext zsleep`
rolliebollocks
Posts: 2655
Joined: Aug 28, 2008 10:54
Location: new york
@Albert

Jesus looks very pretty in his dress.
rolliebollocks
Posts: 2655
Joined: Aug 28, 2008 10:54
Location: new york
Now I can see Jesus no matter where I look:

Code: Select all

`screen 19,32window (-800,-800)-(800,800)for i as single = -3.14 to 3.14 step .0001    dim as single x = ((1 + (.9*cos(8*i))) * (1 + (.1*cos(24*i))))* ((.9 + (.2*cos(200*i))) * (1+sin(i)))    pset (100*x*cos(i),100*x*sin(i)), &hffffffnextsleep`
kiyotewolf
Posts: 1009
Joined: Oct 11, 2008 7:42
Location: ABQ, NM
Contact:
It will work regardless of color, but a rotated character will not work.

You should try my amazing cheap texture mapping routine, you can skew bend and twist, even breaking traditional polygon rules, and turn the character all manner of ways in 3D as if it was on a piece of paper, using my trick I just needed an implementation to add it into for testing.

~Kiyote!
rolliebollocks
Posts: 2655
Joined: Aug 28, 2008 10:54
Location: new york
@kiyotewolf

Well I could rotate the text, the problem is in recognizing it as an A after it's been rotate. It's the sort of problem best solved with a training module.

@All

Check this out. Infinite Monkeys is being featured among other poetry generators. It holds up pretty well I think. There's some interesting algorithmic work being done. I'll have to check it out.

http://netpoetic.com/2010/10/interactive-poetry-generation-systems-an-illustrated-overview/
albert
Posts: 5676
Joined: Sep 28, 2006 2:41
Location: California, USA
@Richard

Okay Richard, since you are the master of physics.

No two particles regardless of polarity can move without mechanics being involved..

If particles are 3D whirlpools in space-time, then the elasticity of space-time would pull two particles together. (So likes/opposites would both pull together.)

If particals are frequency, there must be mechanics involved to maintain the frequencies. so it requires solid mas in motion..

If particles are emmiting smallewr particles in a arc; where the smaller particels return to the emitting particle, opposites/likes would both attract..
===============================================

Question:

Just how do likes/opposites attract and repel ???
Richard
Posts: 3013
Joined: Jan 15, 2007 20:44
Location: Australia
Albert wrote:Okay Richard, since you are the master of physics.
Just because I have worked for a University Physics Department does not make me a member of the “Church of the Big Bang”. I do not have a Masters in Physics. I believe that Physics is no more than a fascinatingly dynamic fairytale. I find the mental gymnastics of Physicists far more interesting than their actual Physics beliefs.

No two particles regardless of polarity can move without mechanics being involved.
If I heat a molecule with IR light it speeds up, then I shine UV light on it to ionise and split it into two oppositely charged ions, I can then separate those ions in a magnetic field. No mechanics are needed.

Ifparticles are 3D whirlpools in space-time , then the elasticity of space-time would pull two particles together. (So likes/opposites would both pull together.)
Since when have particles been 3D whirlpools in space-time? Why do you claim space-time is elastic? You have been reading too many fairytales. Maybe in the vicinity of (+)ve particles space-time appears stretched while near (-)ve particles it appears to shrink. This apparent distortion would cancel for neutral molecules but similar charges would not like their neighbours because stretching stretched space might be harder than stretching ordinary space so they might repel so as to stretch their own patch of space.

If particles are frequency, there must be mechanics involved to maintain the frequencies. so it requires solid mas in motion..
If a particle has available energy and that is released as a photon, then it is that photon that has a wavelength and therefore a frequency (freq = energy / h, where h is Plank's constant). Only energy arriving or departing as a photon has frequency, the particle does not have a frequency.

If particles are emmiting smallewr particles in a arc; where the smaller particels return to the emitting particle, opposites/likes would both attract..
If you say so, you are free to write your own fairytales, you can even believe them, though belief by others is neither compulsory nor likely.

Question:
Just how do likes/opposites attract and repel ???
If observations consistently demonstrate that different particles interact differentially then why does it have to be explained. It happens, engineers will exploit it without any need for an explanation. Any physical explanation will change with time, that won't invalidate the fact or the engineering.

The more assumptions you make, the closer your conclusion approximates a house of cards. If one foundation assumption is demonstrated to be false then the entire edifice falls. Likewise if the language employed is misinterpretable then there can be many inconsistent but valid possible answers or conclusions. The rigorous language of mathematics is used by Physicists to accurately model their agreed perception of the universe, but the mathematics can never explain anything about why it is so. That becomes an issue for Theology.

If you look closely enough, you will find physics to be as slippery as a bar of soap. A Physicist would espouse; “Science is truth, don't be misled by fact.”

I paraphrase Shakespeare; “There are more things in heaven and earth, Albert, than are dreamt of in your philosophy”.
kiyotewolf
Posts: 1009
Joined: Oct 11, 2008 7:42
Location: ABQ, NM
Contact:
Well I could rotate the text,

My routine lets you take any bitmap and stretch and flex and warp it like it's a monogram on a towel, even flipping it if it's been rotated in the Z axis some, or I guess the 4th channel of the rotation matrix, my method uses a 2D binary tree to move pixels from a normal bitmap to a towel on a tree limb or better, but I indeed yes, do need to work on getting it to be able to take a point cloud, and try to extrapolate it's number of points, vertexes and facets so it can understand if it's a square, or otherwise.

So far my routine only lets me bend the rules of rectangular bitmaps so that you could squish and rubberband it back on itself, maybe if you applied a routine that would pass through major combinations of twists and compare to the set that exists present to try to find where it has been skewed in X, Y and then rotated X & Z at the same time.

~Kiyote!