Вариант быстрый и компактный, особенно если принять kx=1, но в графической библиотеке общего назначения я бы предпочел алгоритм средней точки, там удобно и понятно можно задавать радиусы по x и y.