Page 1 of 1

Fractal Broccoli

Posted: Tue Nov 22, 2016 4:52 pm
by heartbone
In the following chart of the best ANDI foods,
Image
the top 17 best foods are all vegetables. (OK tomato is botanically a fruit.)

Of the 17, over half are Brassicas, and six are the same plant species!
How many knew that most popular vegetables are the same plant?

Brassica oleracea
1] Collard Greens
2] Kale
8] Brussels Sprouts
11] Cabbage
13] Broccoli
17] Cauliflower

Brassica rapa
4] Bok Choy
6] Broccoli Rapa
7] Napa Cabbage

You can probably tell that mankind has grown to depend on the Brassicas for a lot of our vegetable needs.
I'm always expanding my uses and next I plan to start grating broccoli stems into cole slaw.

My real reason for creating this thread is to see if any of the smart people who frequent this forum either knows the answer to my question,
or knows someone who knows the answer to my long standing question about the origin of a certain cultivar of Brassica oleracea.

Years ago I saw on a few web pages where scientists claimed that the various cultivars of Brassica were developed from the wild cabbage plant,
which has been verified by DNA analysis.
I've read estimated that these selective breedings started as recently as 3500 years ago.
Others say it started about 7000 years ago. Either way, my question remains.

How did humans selectively breed the wild cabbage plant into Romanesco broccoli?

Image
wild cabbage plant


Image
Romanesco broccoli


:?:

Re: Fractal Broccoli

Posted: Tue Nov 22, 2016 5:02 pm
by TI-994A
heartbone wrote:You can probably tell that mankind has grown to depend on the Brassicas...
Although we'd all agree that PureBrassica is still the best. :lol:

Re: Fractal Broccoli

Posted: Tue Nov 22, 2016 5:06 pm
by Keya

Re: Fractal Broccoli

Posted: Tue Nov 22, 2016 5:50 pm
by heartbone
Yes Keya, I remain perplexed.
Did you know that Wikipedia places the development of broccoli as late as the 1500s?

"By the 15th century AD cauliflower had developed leading also to the emergence of broccoli in Italy about 100 years later."

Someone, or something must have had a serious handle on their 3D fractal mathematics!

Re: Fractal Broccoli

Posted: Wed Nov 23, 2016 8:54 am
by applePi
what if the Fractal Broccoli is a Fractalization of the Pine Cone ?? performed by chemicals or whatever in the old earth
or vise versa the Pine Cone is a DeFractalization of the Fractal Broccoli ??
ie one of them is the ADAM of the other !!!
far imagination, but everything is possible .
here is another stolen code about pine cone, i think if every call to position a sphere (seed) replaced by a call to make a tiny pine cone we will see a Fractal Broccoli, i can't now to make this recursive change i am just stuck.
in fact it is the same sunflower code but stretched in 3D, if we play with the fourth parameter in these lines:
MoveEntity(count+#sphere, z\x , z\y , count/100)
MoveEntity(count+144, -z\x , -z\y , 2.2-count/200)
we will get funny shapes.
since we have used AddSubEntity we need PB 5.50

Code: Select all

Structure coor
 x.f
 y.f
 z.f
EndStructure 

Global z.coor
Global seeds = 1


#golden_angle = 137.508 
Global golden.f = Radian(#golden_angle); = 2.3999 also = golden_angle*PI/180 

Procedure floret(n.i) 
  r.f : ang.f : xc.f : yc.f
  r =Sqr(n*golden)
  ang = (n*golden)
  xc = r*Cos(ang)/20
  yc = r*Sin(ang)/20
  z\x=xc : z\y=yc 
EndProcedure

Enumeration
  #sphere
  #camera
   
EndEnumeration

#cameraSpeed = 0.2
Define.f KeyX, KeyY, MouseX, MouseY
Declare PineCone()


InitEngine3D()
   InitMouse()
   InitKeyboard()
   InitSprite()
   ExamineDesktops()
   
OpenWindow(0, 0, 0, DesktopWidth(0), DesktopHeight(0), "'Space': toggle rotation/stop .... .. arrow keys+mouse: move/rotate camera...", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)

OpenWindowedScreen(WindowID(0), 0, 0, DesktopWidth(0), DesktopHeight(0), 0, 0, 0)
  Add3DArchive(".",#PB_3DArchive_FileSystem)
  Add3DArchive(#PB_Compiler_Home+"Examples\3D\Data\Textures\",#PB_3DArchive_FileSystem)
  Add3DArchive(#PB_Compiler_Home+"Examples\3D\Data\GUI",#PB_3DArchive_FileSystem)
  Parse3DScripts()
                          
  CreateLight(0,RGB(255, 255, 95),-50,50,100)
         ;;============================================
  OpenWindow3D(0,0,0,200,120,"Engine Stats")
  TextGadget3D(0,2,0,200,30,"")
  TextGadget3D(1,2,0,200,60,"")
  ShowGUI(255,0)
    ;=============================================         
    
    CreateCamera(#camera, 0, 0, 100, 100)
    MoveCamera(#camera, 0, 2, 5, #PB_Absolute)
    CameraBackColor(#camera, RGB(255,200,200))
    CameraLookAt(#camera,0,-1,0)
        
    CreateLight(0, RGB(255,255,255), 0, 20, 30)
    AmbientColor(RGB(250, 100, 20))
    
    
    CreateMaterial(1, LoadTexture(1, "clouds.jpg")) 
    MaterialCullingMode(1, #PB_Material_NoCulling)
    SetMaterialColor(1, #PB_Material_AmbientColor, RGB(250, 255, 255))
    SetMaterialColor(1, #PB_Material_SpecularColor, RGB(255, 255, 255))
    
    
    Global Compound = CreateEntity(#PB_Any,0,0)
    
    PineCone() ;call the pine cone construction procedure
    
    RotateEntity(Compound, 90.0,0.0,0,#PB_Absolute) 
  rot = 1
  Repeat
      Repeat
      Event = WindowEvent()
      Until Event = 0
      If ExamineMouse()
        MouseX = -MouseDeltaX()/20 
        MouseY = -MouseDeltaY()/20
      EndIf
      If ExamineKeyboard()
        If KeyboardPushed(#PB_Key_Left)
          KeyX = -#cameraSpeed
        ElseIf KeyboardPushed(#PB_Key_Right)
          KeyX = #cameraSpeed
        Else
          KeyX = 0
        EndIf
        If KeyboardPushed(#PB_Key_Up)
          KeyY = -#cameraSpeed
        ElseIf KeyboardPushed(#PB_Key_Down)
          KeyY = #cameraSpeed
        Else
          KeyY = 0
        EndIf
        If KeyboardReleased(#PB_Key_Space)
          rot ! 1
        EndIf
        
        EndIf
       
        RotateEntity(Compound, 0.5*rot,0.5*rot,0.5*rot,#PB_Relative)
        RotateCamera(#Camera, MouseY, MouseX, 0, #PB_Relative)
      MoveCamera(#Camera, KeyX, 0, KeyY)
      
      RenderWorld()
      FlipBuffers()
      ;;==============================================
            SetGadgetText3D(0,"FPS: "+StrF(Engine3DStatus(#PB_Engine3D_CurrentFPS )))
            SetGadgetText3D(1,"Tris: "+StrF(Engine3DStatus(#PB_Engine3D_NbRenderedTriangles))) 
      ;;================================================
    Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1
 
End


Procedure PineCone()
    
  CreateSphere(#sphere,1, 16,16)
  CreateEntity(#sphere, MeshID(#sphere),MaterialID(1),0,0,0)
     
   For count =1 To 140
   
  floret(count) ; calling the procedure to find the one sphere (seed) position
  CopyEntity(#sphere,count+#sphere)
  ScaleEntity(count+#sphere, (0.11+count/900),(0.11+count/900),(0.11+count/900))
  MoveEntity(count+#sphere, z\x , z\y , count/100)
  AddSubEntity(Compound, count+#sphere, #PB_Entity_SphereBody) 

Next

  For count =144 To 1 Step -1
   
  floret(count) ;calling the procedure to find the one sphere (seed) position
  CopyEntity(#sphere,count+144)
  ScaleEntity(count+144, (0.11+count/900),(0.11+count/900),(0.11+count/900))
  MoveEntity(count+144, -z\x , -z\y , 2.2-count/200)
  AddSubEntity(Compound, count+144, #PB_Entity_SphereBody)

Next

HideEntity(#sphere,1)
  
EndProcedure

Re: Fractal Broccoli

Posted: Wed Nov 23, 2016 10:52 am
by zxretrosoft
@applePi
Fantastic!! :D :D :D :idea: