Gnuplot和香蕉曲线

问题描述 投票:1回答:1

我是gnuplot软件的新用户。我可以使用此模板构建简单的参数曲线:

set size square
set parametric
set trange [MIN:MAX]
fx(t) = ...
fy(t) = ...
plot fx(t),fy(t)

现在,我试图将此模板用于绘制banana curve

set size square
set samples 9999
set parametric
set trange [0:24*pi]
Heaviside(x) = (x>=0) ? 1 : 0
fx(t) = ((-64 / 37 * sin(38 / 25 - 18 * t) - 33 / 14 * sin(23 / 15 - 16 * t) - 137 / 34 * sin(23 / 15 - 14 * t) - 281 / 36 * sin(31 / 20 - 10 * t) - 165 / 17 * sin(64 / 41 - 8 * t) - 2019 / 34 * sin(39 / 25 - 4 * t) - 1279 / 35 * sin(87 / 56 - 3 * t) - 2409 / 26 * sin(36 / 23 - 2 * t) + 13503 / 41 * sin(t + 74 / 47) + 674 / 29 * sin(5 * t + 11 / 7) + 143 / 42 * sin(6 * t + 313 / 67) + 9 / 7 * sin(7 * t + 49 / 33) + 77 / 31 * sin(9 * t + 76 / 51) + 59 / 33 * sin(11 * t + 39 / 25) + 21 / 29 * sin(12 * t + 83 / 18) + 67 / 21 * sin(13 * t + 47 / 30) + 10 / 43 * sin(15 * t + 15 / 11) + 12 / 31 * sin(17 * t + 29 / 23) + 11 / 42 * sin(19 * t + 34 / 25) + 13575 / 23) * Heaviside(23 * pi - t) * Heaviside(t - 19 * pi) + (4712 / 35 * sin(t + 11 / 7) + 3011 / 32 * sin(2 * t + 80 / 51) + 2605 / 23 * sin(3 * t + 69 / 44) + 2438 / 55 * sin(4 * t + 155 / 33) + 355 / 29 * sin(5 * t + 77 / 48) + 257 / 25 * sin(6 * t + 131 / 28) + 112 / 9 * sin(7 * t + 85 / 53) + 276 / 25 * sin(8 * t + 74 / 47) + 29 / 22 * sin(9 * t + 118 / 27) + 262 / 77 * sin(10 * t + 51 / 11) + 117 / 16 * sin(11 * t + 52 / 33) + 384 / 53 * sin(12 * t + 173 / 37) + 64 / 9 * sin(13 * t + 47 / 30) + 108 / 43 * sin(14 * t + 17 / 11) + 37311 / 53) * Heaviside(19 * pi - t) * Heaviside(t - 15 * pi) + (-38 / 61 * sin(31 / 21 - 15 * t) - 309 / 35 * sin(36 / 23 - 14 * t) - 1 / 25 * sin(28 / 23 - 13 * t) - 432 / 23 * sin(64 / 41 - 10 * t) - 14242 / 39 * sin(58 / 37 - 2 * t) - 181 / 25 * sin(36 / 23 - t) + 449 / 22 * sin(3 * t + 19 / 12) + 2839 / 45 * sin(4 * t + 179 / 38) + 1013 / 78 * sin(5 * t + 80 / 17) + 2063 / 45 * sin(6 * t + 146 / 31) + 41 / 27 * sin(7 * t + 42 / 25) + 89 / 71 * sin(8 * t + 169 / 37) + 64 / 63 * sin(9 * t + 293 / 65) + 55 / 21 * sin(11 * t + 75 / 16) + 103 / 48 * sin(12 * t + 73 / 45) + 12 / 59 * sin(16 * t + 70 / 39) + 73 / 38 * sin(17 * t + 30 / 19) + 25521 / 25) * Heaviside(15 * pi - t) * Heaviside(t - 11 * pi) + (9049 / 69 * sin(t + 212 / 45) + 128451 / 350 * sin(2 * t + 49 / 31) + 1507 / 39 * sin(3 * t + 141 / 88) + 3461 / 161 * sin(4 * t + 66 / 41) + 373 / 18 * sin(5 * t + 59 / 37) + 331 / 20 * sin(6 * t + 107 / 67) + 802 / 27 * sin(7 * t + 99 / 62) + 12 / 11 * sin(8 * t + 76 / 43) + 39 / 14 * sin(9 * t + 82 / 47) + 16 / 13 * sin(10 * t + 55 / 31) + 381 / 34 * sin(11 * t + 31 / 19) + 223 / 44 * sin(12 * t + 18 / 11) + 35 / 23 * sin(13 * t + 127 / 27) + 12 / 31 * sin(14 * t + 273 / 62) - 17471 / 43) * Heaviside(11 * pi - t) * Heaviside(t - 7 * pi) + (-1162 / 93 * sin(14 / 9 - 14 * t) - 172 / 23 * sin(25 / 16 - 11 * t) - 599 / 28 * sin(64 / 41 - 10 * t) - 1131 / 40 * sin(61 / 39 - 8 * t) - 496 / 21 * sin(58 / 37 - 7 * t) - 445 / 22 * sin(69 / 44 - 6 * t) - 2695 / 32 * sin(47 / 30 - 4 * t) - 2255 / 26 * sin(36 / 23 - 3 * t) + 5557 / 31 * sin(t + 113 / 72) + 7879 / 53 * sin(2 * t + 52 / 33) + 1301 / 69 * sin(5 * t + 91 / 57) + 71 / 9 * sin(9 * t + 47 / 29) + 175 / 18 * sin(12 * t + 80 / 17) + 152 / 29 * sin(13 * t + 45 / 28) + 4628 / 29) * Heaviside(7 * pi - t) * Heaviside(t - 3 * pi) + (-45 / 11 * sin(23 / 16 - 24 * t) - 263 / 47 * sin(31 / 22 - 20 * t) - 103 / 27 * sin(25 / 17 - 16 * t) - 18 / 5 * sin(53 / 38 - 15 * t) - 146 / 31 * sin(48 / 31 - 11 * t) + 1349 / 14 * sin(t + 61 / 13) + 37592 / 57 * sin(2 * t + 68 / 43) + 1954 / 37 * sin(3 * t + 44 / 27) + 1025 / 31 * sin(4 * t + 29 / 18) + 20 / 7 * sin(5 * t + 37 / 22) + 1058 / 37 * sin(6 * t + 8 / 5) + 251 / 49 * sin(7 * t + 33 / 19) + 889 / 51 * sin(8 * t + 57 / 35) + 493 / 25 * sin(9 * t + 13 / 8) + 423 / 211 * sin(10 * t + 44 / 27) + 171 / 44 * sin(12 * t + 82 / 49) + 490 / 27 * sin(13 * t + 5 / 3) + 71 / 24 * sin(14 * t + 57 / 32) + 433 / 40 * sin(17 * t + 37 / 22) + 96 / 19 * sin(18 * t + 37 / 20) + 3 / 14 * sin(19 * t + 9 / 31) + 63 / 13 * sin(21 * t + 39 / 23) + 214 / 47 * sin(22 * t + 46 / 25) + 95 / 31 * sin(23 * t + 44 / 27) + 89 / 45 * sin(25 * t + 112 / 67) + 85 / 41 * sin(26 * t + 41 / 21) - 111432 / 139) * Heaviside(3 * pi - t) * Heaviside(t + pi)) * Heaviside(sqrt(sgn(sin(t / 2))))    
fy(t) = ((-25 / 19 * sin(29 / 20 - 19 * t) - 29 / 16 * sin(41 / 27 - 18 * t) - 18 / 13 * sin(23 / 16 - 16 * t) - 26 / 11 * sin(34 / 23 - 15 * t) - 605 / 151 * sin(53 / 35 - 14 * t) - 25 / 32 * sin(41 / 29 - 13 * t) - 38 / 23 * sin(56 / 37 - 12 * t) - 53 / 39 * sin(28 / 19 - 11 * t) - 162 / 19 * sin(54 / 35 - 10 * t) - 61 / 17 * sin(40 / 27 - 9 * t) - 97 / 20 * sin(48 / 31 - 8 * t) - 67 / 26 * sin(47 / 32 - 7 * t) - 573 / 22 * sin(14 / 9 - 6 * t) - 19 / 8 * sin(23 / 16 - 5 * t) - 680 / 23 * sin(17 / 11 - 3 * t) - 7523 / 21 * sin(61 / 39 - 2 * t) + 2667 / 80 * sin(t + 36 / 23) + 131 / 36 * sin(4 * t + 61 / 13) + 23 / 38 * sin(17 * t + 67 / 45) + 14375 / 26) * Heaviside(23 * pi - t) * Heaviside(t - 19 * pi) + (17603 / 108 * sin(t + 113 / 24) + 2227 / 39 * sin(2 * t + 11 / 7) + 5232 / 31 * sin(3 * t + 58 / 37) + 745 / 54 * sin(4 * t + 14 / 3) + 524 / 25 * sin(5 * t + 59 / 37) + 136 / 29 * sin(6 * t + 331 / 72) + 37 / 41 * sin(7 * t + 48 / 13) + 460 / 33 * sin(8 * t + 19 / 12) + 112 / 17 * sin(9 * t + 49 / 30) + 29 / 28 * sin(10 * t + 72 / 17) + 282 / 59 * sin(11 * t + 13 / 8) + 61 / 35 * sin(12 * t + 68 / 15) + 181 / 37 * sin(13 * t + 101 / 63) + 61 / 30 * sin(14 * t + 57 / 35) - 3904 / 13) * Heaviside(19 * pi - t) * Heaviside(t - 15 * pi) + (-169 / 33 * sin(59 / 38 - 14 * t) - 342 / 37 * sin(14 / 9 - 9 * t) - 717 / 43 * sin(102 / 65 - 8 * t) - 289 / 46 * sin(73 / 47 - 6 * t) - 273 / 17 * sin(39 / 25 - 5 * t) - 3578 / 37 * sin(36 / 23 - 4 * t) + 5961 / 68 * sin(t + 179 / 38) + 15033 / 49 * sin(2 * t + 63 / 40) + 3071 / 41 * sin(3 * t + 11 / 7) + 695 / 36 * sin(7 * t + 46 / 29) + 120 / 23 * sin(10 * t + 80 / 17) + 36 / 7 * sin(11 * t + 19 / 12) + 67 / 30 * sin(12 * t + 136 / 29) + 121 / 31 * sin(13 * t + 113 / 24) + 259 / 53 * sin(15 * t + 27 / 17) + 53 / 18 * sin(16 * t + 481 / 103) + 1 / 6 * sin(17 * t + 1893 / 946) - 6765 / 37) * Heaviside(15 * pi - t) * Heaviside(t - 11 * pi) + (-304 / 49 * sin(63 / 41 - 14 * t) - 243 / 14 * sin(48 / 31 - 10 * t) - 135 / 47 * sin(35 / 23 - 9 * t) - 19 / 3 * sin(31 / 20 - 8 * t) - 1313 / 37 * sin(57 / 37 - 6 * t) - 187 / 16 * sin(44 / 29 - 5 * t) - 3809 / 42 * sin(67 / 43 - 4 * t) + 3251 / 45 * sin(t + 113 / 24) + 3207 / 20 * sin(2 * t + 19 / 12) + 3845 / 22 * sin(3 * t + 19 / 12) + 762 / 31 * sin(7 * t + 41 / 26) + 26 / 17 * sin(11 * t + 25 / 17) + 7 / 13 * sin(12 * t + 191 / 109) + 173 / 35 * sin(13 * t + 64 / 41) + 1004 / 7) * Heaviside(11 * pi - t) * Heaviside(t - 7 * pi) + (-196 / 33 * sin(25 / 16 - 14 * t) - 356 / 47 * sin(39 / 25 - 10 * t) - 181 / 11 * sin(82 / 53 - 8 * t) - 457 / 87 * sin(49 / 32 - 4 * t) + 139 / 87 * sin(t + 16 / 19) + 12549 / 28 * sin(2 * t + 63 / 40) + 130 / 27 * sin(3 * t + 64 / 47) + 82 / 13 * sin(5 * t + 19 / 12) + 375 / 32 * sin(6 * t + 25 / 16) + 9 / 29 * sin(7 * t + 50 / 13) + 343 / 44 * sin(9 * t + 86 / 53) + 83 / 33 * sin(11 * t + 123 / 77) + 415 / 38 * sin(12 * t + 113 / 24) + 173 / 27 * sin(13 * t + 19 / 12) - 17222 / 45) * Heaviside(7 * pi - t) * Heaviside(t - 3 * pi) + (-4 / 7 * sin(32 / 25 - 26 * t) - 149 / 27 * sin(74 / 53 - 25 * t) - 293 / 40 * sin(44 / 31 - 21 * t) - 28 / 45 * sin(15 / 23 - 20 * t) - 643 / 90 * sin(45 / 31 - 17 * t) - 146 / 37 * sin(29 / 22 - 16 * t) - 256 / 35 * sin(47 / 31 - 13 * t) - 2859 / 301 * sin(38 / 27 - 12 * t) - 429 / 25 * sin(47 / 30 - 7 * t) - 9387 / 23 * sin(47 / 30 - t) + 5035 / 32 * sin(2 * t + 41 / 26) + 101 / 17 * sin(3 * t + 33 / 19) + 1388 / 27 * sin(4 * t + 67 / 42) + 133 / 67 * sin(5 * t + 49 / 25) + 788 / 19 * sin(6 * t + 91 / 57) + 58 / 31 * sin(8 * t + 61 / 46) + 9 / 13 * sin(9 * t + 50 / 21) + 1033 / 37 * sin(10 * t + 70 / 43) + 174 / 23 * sin(11 * t + 61 / 13) + 416 / 21 * sin(14 * t + 63 / 38) + 48 / 19 * sin(15 * t + 921 / 460) + 232 / 23 * sin(18 * t + 17 / 10) + 289 / 46 * sin(19 * t + 65 / 36) + 167 / 65 * sin(22 * t + 74 / 43) + 103 / 24 * sin(23 * t + 97 / 53) + 75 / 29 * sin(24 * t + 55 / 34) - 5384 / 11) * Heaviside(3 * pi - t) * Heaviside(t + pi)) * Heaviside(sqrt(sgn(sin(t / 2))))
plot fx(t),fy(t)

left上,我们看到的是正确结果,在gnuplot生成的right结果上]

我怎么了?

我应该使用特殊命令吗?

我是gnuplot软件的新用户。我可以使用此模板构建一条简单的参数曲线:设置大小平方设置参数设置范围trange [MIN:MAX] fx(t)= ... fy(t)= ...绘制fx(t),fy(t)现在,我...

gnuplot parametric-equations
1个回答
2
投票

如果给定整数,则gnuplot使用整数算术,因此1/2 = 0。为了确保浮点运算,您必须将至少某些数值提升为浮点数。例如,

© www.soinside.com 2019 - 2024. All rights reserved.