Q:

How to deform a 2d shape to make a 3d object?

I have a 2d flat mesh that i would like to manipulate without any distortion to create a 3D shape. Typically for the pie below, joining the 2 edges together would make a 3D cone. Do you have any idea of which modifier to use ?  

A:

Using a script to make the two shape keys.  Change the r and h of result cone.

Example of radius 1, height 2, 1 and 0.5 cones.
import bpy
import bmesh
from mathutils import Vector
from math import radians, sin, cos, sqrt

from bpy import context # for testing

r = 1 # radius of cone
h = 1 # height of cone
sectors = 16
l = sqrt(r**2 + h**2) # hypotenuse
# sector will have angle 

theta = radians(360) * r / l
dtheta = theta / sectors

# build the base

bm = bmesh.new()

verts = []
for i in range(sectors + 1):
    a = i * dtheta
    verts.append(bm.verts.new((l * cos(a), l * sin(a), 0)))

topvert = bm.verts.new((0, 0, 0))
for i in range(sectors):
    bm.faces.new([verts[i + 1], topvert, verts[i]])

cone_mesh = bpy.data.meshes.new("Cone")
cone = bpy.data.objects.new("Cone", cone_mesh)         
bm.to_mesh(cone_mesh)

# add base as basis shape key
basis_shape_key = cone.shape_key_add("Basis")

# add second shape key

cone_shape_key = cone.shape_key_add("Cone")
offset = (radians(360) - theta) / 2
dtheta = radians(360) / sectors
for v in verts:
    a = v.index * dtheta - offset
    cone_shape_key.data[v.index].co = ((r * cos(a), r * sin(a), 0))
cone_shape_key.data[topvert.index].co = (0, 0, h)

# link to scene

scene = context.scene
scene.objects.link(cone)
scene.objects.active = cone
cone.select = True

A:

Managed to approximate this with Shape Keys, starting out with a cone, it's easier than starting out with a flat shape and bending it into your will.

Add a cone mesh with whatever final dimensions you want it to have
Move it in edit mode so it's center is on the center of the base (not mid height)
Erase the left part and the bottom face and then add a Mirror modifier

Add two new shape keys one is the base as it currently is, and another (Key 1) will be it's flat shape.
Now some math, in edit mode check the length of one of the cone large side edges with the 3D view > Properties Region > Mesh Display > Length that will determine the radius of the final flat shape
Add a new mesh circle object, it's radius should be the length of the previously measured edge, and it the number radius vertices should be 1 1/4 the number of vertices of the cone. So if by default a cone has 32 vertex so the circle should have 1.25 x 32 = 40 vertices.
Erase one quarter of the circle's edges so that they are centered around the edge you ripped in Step 3

Now with shape Key 1 selected enter edit mode on the cone, move the central vertex down until it is flat
Scale all the vertex in the cone base so that they reach the circle radius (use snap for better precision)

Press .(Period Key) to transform centered in 3D Cursor
Hide all the cone vertex but the outer rim of the base, including the vertex at X=0
With Proportional Edit set to Connected and the Fallof type set to Linear, select only the lower vertex and rotate them all 1/8 of a turn, so they snap to the open end of the circle. Adjust the Proportional Edit radius with the mouse wheel.

13.Profit! (Adjust progression with the shapekey Value Slider)

You may then give it a more natural or organic looking transition with some modifiers or with manually bending the shape a little with more shapekeys

