Dalam header ini, codenya sedikit saya modifikasi dengan penambahan fungsi untuk mengecek gradien dari suatu garis.
-
/* file : garis.h */
-
/* ADT point */
-
-
#ifndef garis_h
-
#define garis_h
-
#include "ADTPOINT.h"
-
-
/* contoh ADT yg memanfaatkan ADT lain */
-
/* garis dibentuk oleh duah buah point */
-
-
typedef struct
-
{
-
point paw; /* titik awal */
-
point pakh; /* titik akhir */
-
} garis;
-
-
/* definisi prototipe primitif */
-
/*** konstruktor membentuk garis ***/
-
-
void makegaris(point p1,point p2,garis *l);
-
/* I.S : p1 & p2 terdefinisi */
-
/* F.S : l terdefinisi dg l.paw=p1 & l.pakh=p2 */
-
/* membentuk sebuah garis l dari komponen-komponennya */
-
-
/*** selektor garis ***/
-
point getpaw (garis l);
-
/* mengirimkan komponen titik pertama dari l garis */
-
-
point getpakh(garis l);
-
/* mengirimkan komponen titik kedua dari l garis*/
-
-
-
/* kelompok interaksi dengan I/O device, baca/tulis */
-
void bacagaris(point p1,point p2,garis *l);
-
/* makegaris(p1,p2) dari p1 dan p2 yang dibaca */
-
-
void tulisgaris(garis l);
-
/* nilai p ditulis ke layar dg format ((x,y),(x,y)) */
-
-
/* kelompok operasi relasional terhadap garis */
-
boolean garisEQ(garis l1,garis l2);
-
/* mengirimkan true jika l1=l2 */
-
/* l1 dikatakan = l2 jika titik awal l1 = titik awal l2*/
-
/* dan titik akhir l1=titik akhir l2 */
-
-
boolean garisNEQ(garis l1,garis l2);
-
/* mengirimkan true jika l1 tidak sama dengan l2 */
-
/* negasi dari fungsi EQ */
-
-
/* kelompok menentukan dimana l berada */
-
-
boolean isgarisonsbx(garis l);
-
/* menghasilkan true jika l terletak pada sumbu x */
-
-
boolean isgarisonsby(garis l);
-
/* menghasilkan true jika l terletak pada sumbu y */
-
-
int kuadrangaris(garis l);
-
/* menghasilkan kuadran dari l (dimana paw dan pakh berada) */
-
/* precondition: l tdk terletak pd slh satu sumbu */
-
-
/* kelompok predikat lain */
-
-
int cekGrad (garis l);
-
/*fungsi baru untuk menghitung SLOPE/GRADIEN copyright by TWOH*/
-
-
boolean isgaristegaklurus(garis l,garis l1);
-
/* menghasilkan true jika l tegak lurus l1 */
-
-
boolean isgarissejajar(garis l,garis l1);
-
/* menghasilkan true jika l sejajar terhadap l1 */
-
-
/* kelompok operasi lain */
-
-
garis g_mirrorof(garis l,boolean sbx,boolean sby);
-
/* menghasilkan salinan l yang dicerminkan */
-
/* tergantung nilai sbx dan sby */
-
/* jika sbx bernilai true, maka dicerminkan terhadap sb x */
-
/* jika sby bernilai true, maka dicerminkan terhadap sb y */
-
-
float panjanggaris(garis l);
-
/* menghitung panjang garis l */
-
-
float arahgaris(garis l);
-
/* menghitung arah dari garis l*/
-
/* yaitu sudut yang dibentuk dengan sumbu x */
-
-
float sudutgaris(garis l1, garis l2);
-
/* menghasilkan sudut perpotongan antara l1 dengan l2 */
-
/* precondition : l1 tidak sejajar dg l2 dan tidak berimpit dg l2 */
-
-
void gesergaris(garis *l,int deltax,int deltay);
-
/*I.S : l terdefinisi */
-
/*F.S : l digeser sebesar deltax dan ordinatnya sebesar delta y*/
-
/*paw dan pakh digeser*/
-
-
void mirrorgaris(garis *l,boolean sbx,boolean sby);
-
/* I.S : l terdefinisi */
-
/* F.S : l dicerminkan tergantung nilai sbx atau sby */
-
/* jika sbx true maka dicerminkan thd sumbu x */
-
/* jika sby true maka dicerminkan thd sumbu y */
-
-
void g_putar(garis *l,float sudut);
-
/* I.S : l terdefinisi */
-
/* F.S : l diputar sebesar sudut derajat : paw dan pakh diputar */
-
-
#endif
-