How to deform a 2d shape to make a 3d object?
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