scholar_vit (scholar_vit) wrote,
scholar_vit
scholar_vit

Category:

О хакерском подходе к программированию

Прекрасная иллюстрация к тому, что такое настоящий хакер. В последнем номере TUGboat статья Дениса Рёгеля (Denis Roegel, Spheres, great circles and parallels, TUGboat, 30 (1), 80--87, 2009). Он рисовал параллели и большие круги на сфере в программе METAPOST, и для точного построения ему нужна была трехмерная векторная алгебра. Но в METAPOSTе нет типа данных "трехмерный вектор". Рёгель заметил, что программа умеет раскрашивать рисунки, и цвет точки задается тремя параметрами в пространстве rgb (т.е. смешением красного, зеленого и синего). После чего он спокойно пишет:

let vector=color;
let Xp=redpart; let Yp=greenpart; let Zp=bluepart;

def dotproduct (expr Vi, Vj)=
  (Xp(Vi)*Xp(Vj) + Yp(Vi)*Yp(Vj) + Zp(Vi)*Zp(Vj))
enddef;

def vecproduct (expr Vi, Vj) =
  (Yp(Vi)*Zp(Vj)-Zp(Vi)*Yp(Vj),
   Zp(Vi)*Xp(Vj)-Xp(Vi)*Zp(Vj),
   Xp(Vi)*Yp(Vj)-Yp(Vi)*Xp(Vj))
enddef;

def norm(expr V) = sqrt(dotproduct(V,V)) enddef;
def normed(expr V) = (V/norm(V)) enddef;

и дальше строит свои чертежи.

Вот это и есть Настоящее Хакерство(TM).

Tags: computers, tex
Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 32 comments