Ну я хз про оптимизации, но есть общая формула:
x / a + y / b = 1
где a и b удаление от начала координат по X и Y, т.е. подставляешь a и b, затем делаешь шаг по X или Y (шаг определяешь сам, например 1px) и вычисляешь второе значение.
Думаю, что есть специальные алгоритмы, но я тут не в теме особо.