これは、自分では理解できないもう少し複雑な宿題の最後の部分です。
基本的には、C を使用して SVG に描画される接線関数です。
これは私がそれを描いている方法です:
これは次のようになります。
接線が定義されていない線を描いていることを除いて、ほとんど同じです..どうすればそれを取り除くことができますか? 私は実際に単純なfor
サイクルを使用してその接線を生成しています。Lineto を Moveto に変更することで、これらの線を取り除くことができますが、任意の高さ/幅および任意の (-x,x ) (-y,y)。何かご意見は?
編集:構造
typedef struct svg_graph{
int w;
int h;
int x;
int y;
} graph;
そしてコード自体:
double initializer = 0;
double m = 0;
double temp = 0;
initializer = svg->h/2 - tan(-svg->x)*(((double)svg->h/2)/svg->y);
fprintf(output, "<path clip-path=\"url(#myClip)\" d=\"M 0 %.1f", initializer)
temp = ((double)svg->x/(svg->w/2));
m = svg->h/2 - tan(-svg->x+temp)*((double)(svg->h/2)/svg->y);
for (int i = 1; i<=svg->w; i++){
fprintf(output, " L %d %.1f", i, m);
temp = ((double)svg->x/(svg->w/2)) + temp;
m = svg->h/2 - tan(-svg->x+temp)*((double)(svg->h/2)/svg->y);
}