11
$\begingroup$

I'm trying to figure out the best way to model the sphere-spiral here:

enter image description here

Is it possible to make this shape directly? Or do you have to make it as a cylinder and wrap it to a sphere?

$\endgroup$
20
$\begingroup$

Ok... I can't help putting out the laziest of the answers...

Enable the Add Curve: Extra Objects plugin.

enter image description here

Then do Add->Curve->Spirals

enter image description here

Select spiral type number 3 (spheric), and give it the parameters you want for radius, turns, etc:

enter image description here

enter image description here

| improve this answer | |
$\endgroup$
15
$\begingroup$

The easiest way to model this is to shrinkwrap a strip of vertices to a sphere and then put a skin modifier on it.

I would recommend starting out with two verts, one at the origin and the other about twenty units up the x-axis and about two units up the z-axis. Once you have the verts in place, subdivide it with about 400 cuts and add a simple deform modifier. Switch the modifier to Bend mode and jack the angle way up to around 2560. This will give you a corkscrew shape.

enter image description here

Try to get it looking something like this. If you didn't quite get it right, you can set the transform pivot from Median Point to 3D Cursor in the bottom bar. Then, you can scale along the Z axis to make the corkscrew shape taller, or along the X axis to make it skinnier/fatter.

Then, make a new UV sphere subdivided a couple more times from the default and fit it inside the corkscrew shape you got, and add a Shrinkwrap modifier to the corkscrew. Set the mode to Nearest Surface Point (you can't use Project because there aren't any faces.)

enter image description here

At this point you will probably want to apply the simple deform modifier, go into edit mode, set the pivot to the 3d cursor, put the cursor on the bottom of the sphere, turn proportional editing on in Connected mode, set the falloff to sharp, and scale down the vertex on the bottom locking the Z axis. Do the same for the vertex on the top to get the shape kind of close to the sphere shape. (I recommend having the shrinkwrap modifier display on the edit cage to make this easier to see.)

enter image description here

Once you've done that, add the skin modifier, check Smooth Shading, and scale down the skin radius with CtrlA. Put a subdivision surface modifier on that and you've got your weird corkscrew sphere thing. Here's mine:

enter image description here

| improve this answer | |
$\endgroup$
  • 1
    $\begingroup$ Hi, looks like you've got a decent answer going, but it's really hard to follow, and intimidating to read because of not having any line breaks. Could you clean it up a bit please? $\endgroup$ – TARDIS Maker Nov 26 '15 at 4:51
  • $\begingroup$ Yeah sure, I'll get it done in a bit. $\endgroup$ – Spencer Brown Nov 26 '15 at 4:54
12
$\begingroup$

Here is a script to produce a Spherical Spiral Loxodrome , from it's parametric equations

import bpy

from mathutils import Vector
from math import radians, sin, cos, tan, sqrt, floor

context = bpy.context

def loxodrome_points(spirals, revs, angle_step=10):
    a = 1 / spirals
    degs = floor(360 * revs / 2)
    segs = [radians(d) for d in range(-degs, degs, angle_step)]
    points = []
    for t in segs:
        den = sqrt(1 + a * a * t * t)
        x = cos(t) / den
        y = sin(t) / den
        z = - a * t / den
        l = Vector((x, y, z))
        points.append(l)     
    return points


points = loxodrome_points(10, 10)
#loxodrome = bpy.data.objects.get("Loxodrome")
#if loxodrome is None:
if True:
    loxocurve = bpy.data.curves.new("loxo", 'CURVE')
    loxocurve.dimensions = '3D'
    loxocurve.resolution_u = 2
    spline = loxocurve.splines.new('NURBS')
    spline.points.add(count=len(points) - 1)

    for i, bp in enumerate(spline.points):
        x, y, z = points[i]
        bp.co = (x, y, z, 1)

    loxodrome = bpy.data.objects.new("Loxodrome", loxocurve)    
    context.scene.objects.link(loxodrome)

Produces a unit radius curve Loxodrome at (0, 0, 0) applying the matrix_world of a sphere to the loxodrome curve should see it remain on surface. Adjust the parameters in loxodrome_points(10, 10) for differing 'dromes.

enter image description here

| improve this answer | |
$\endgroup$
0
$\begingroup$

enter image description here

A variety of spirals can be constructed. Equal width (involute), great circles and so on.The Loxodrome on sphere given below is made with above equations on Mathematica.

enter image description here

| improve this answer | |
$\endgroup$
  • $\begingroup$ What's this supposed to mean? Was this meant to be a comment? $\endgroup$ – TARDIS Maker Nov 27 '15 at 2:43
  • $\begingroup$ Please add some information as to how the user might be able to use this information. As it is, it is not clear how a user might implement this equation. $\endgroup$ – Ray Mairlot Nov 27 '15 at 14:01
  • $\begingroup$ Added to my answer re that the Spherical Spiral is a special case of a loxodrome, in that the crossed meridians are those of a sphere. Also added link to wolfram page with equations used. $\endgroup$ – batFINGER Nov 27 '15 at 15:05
  • $\begingroup$ @Ray Mairlot I am very new to Blender. Equations of curves and surfaces can be coded and shown in Mathematica. $\endgroup$ – Narasimham Nov 27 '15 at 20:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.