Я хочу создать инструмент, похожий на этот

Я не хочу создавать с таким количеством опций, но просто базовый набор 23 варианта, такие как рисование линий.Как они строят такие вещи?Могу ли я построить что-то подобное в C # или Java?Кроме того, я хочу, чтобы, когда кто-нибудь рисовал что-то, я буду генерировать код на заднем плане, который не будет связан с рисунком, который создал человек.