c - 使用 C 在 SVG 中绘制切线图

标签 c graph svg drawing

这是我自己无法理解的更复杂作业的最后一部分。

基本上它是一个正切函数,使用 C 绘制成 SVG。

我是这样画的:

enter image description here

它应该是这样的:

enter image description here

除了我什至绘制那些未定义切线的线外,它几乎是一样的。我如何摆脱它?我实际上是使用一个简单的 for 循环生成该切线,我知道通过将 Lineto 更改为 Moveto 我将摆脱那些线,但是如何确定一个可用于任何高度的公式/宽度和任何 (-x,x) (-y,y)。有什么想法吗?

源代码: link to my drawing | link to original drawing

编辑:结构

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);
}

最佳答案

如果导数是非有限的,那么您需要移动而不是直线。

关于c - 使用 C 在 SVG 中绘制切线图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10969119/

相关文章:

c - 如果它是结构成员,如何打印 void 指针的值

graph - ArangoDB 2.8 中通过相同边缘集合进行多次遍历

css - 如何防止 SVG 进入另一个 SVG 剪辑

html - SVG 元素无法在 Safari 中显示阴影过滤器

c - 从 C 语言的文件中扫描行时出现 Odd Seg Failure 错误

objective-c - 如何散列目录的(可能是递归的)内容

database - 如何将图形数据存储在数据库中?

javascript - Google API 可视化图表不起作用

jquery - 将 svg 元素从一个 div 复制并粘贴到另一个 div

c - 将第一行替换为空格