修改 generate 和 redraw 的api，更加易用与理解