标签: curve

D3自定义曲线:区域的束插值

考虑使用基础插值的D3JS图:

D3JS v3,基础插值

在D3JS v3中,我可以在区域上使用bundle interpolation(.interpolate("bundle").tension(0))来实现这种类型的渲染:

D3JS v3,束插值

请注意图表的每个部分如何与其邻居完美匹配.这就是我需要的.

对于D3JS v4和v5,束插值的语法现在是:.curve(d3.curveBundle).但是,它现在"打算与d3.line合作,而不是d3.area."

我最近从v3升级到v5,所以我正在尝试创建一个自定义捆绑曲线,它也可以用于区域,以保持我喜欢的插值类型v3.

我很亲密.这是我到目前为止:

///////////////////// Custom curves.

/** Bundle-ish.
 * Trying to adapt curveBundle for use with areas…
 */
function myBundle(context, beta) {
	this._basis = new d3.curveBasis(context);
	this._beta = beta;

	this._context = context; // temporary. shouldn't be needed for bundle.
}
myBundle.prototype = {

	areaStart: function() {
		this._line = 0;
	},
	areaEnd: function() {
		this._line = NaN;
	},
	lineStart: function() {
		this._x = [];
		this._y …
Run Code Online (Sandbox Code Playgroud)

javascript curve interpolation d3.js

7
推荐指数
1
解决办法
573
查看次数

在弯曲的路径上绘制NSString的方法?

我一直在寻找任何一个示例代码,用于在弯曲的路径上绘制UILabel(或只是一个NSString或某个东西),但空手而归.

有没有人知道是否可以在弯曲的路径上绘制文字,如圆圈或其他东西,而不是为每一个字母使用单独的图形片段?

iphone curve nsstring uilabel

6
推荐指数
0
解决办法
2781
查看次数

拖动贝塞尔曲线进行编辑

如果您使用像Gimp或Photoshop这样的图形编辑程序,您将理解我的意思.要编辑这些程序的曲线(可能是贝塞尔曲线),我们可以单击曲线,拖动鼠标并相应地更改曲线.我怀疑这个机制背后的所有东西都与向量有关,但我找不到任何提及如何做到的文件.有人能告诉我怎么做吗?非常感谢你.

[编辑]我的意思是选择曲线本身来改变(编辑)它(点击曲线,然后拖动曲线进行编辑).通常,我们选择控制点来改变曲线.我知道要改变曲线,我需要编辑控制点,但是如何将曲线上的变化解释为对控制点的变化?

bezier curve edit

6
推荐指数
1
解决办法
2739
查看次数

iOS - 沿弯曲路径拖动对象

我正在撕扯我的头发试图弄清楚什么似乎是一个非常容易的问题.我知道很多这些东西都被切向讨论过,所以如果这是在很好的覆盖地面上道歉,但我找不到任何具体的解决方案(相信我,我看了).

基本上我想沿预定义的弯曲路径拖动一个对象/精灵(不仅仅是移动它,而是DRAG IT).想想iPhone的"滑动解锁"的东西,但不要只是从左到右拖动滑块,使路径成弧形或波浪线.

我的基本思路是:

  • 定义贝塞尔曲线路径,在起始点设置对象.
  • 如果触摸了对象,请检查touchesMoved(或某些类似函数)中bezier路径上的命中检测.如果触摸停留在路径上,则沿着路径前进精灵,直到路径结束(在这种情况下,任务完成)或用户的手指离开路径(在这种情况下,对象应该返回到开头).

这些都不是微不足道的(至少看起来是这样).例如:

  • 在Bezier路径上进行命中检测是一种巨大的痛苦,因为你实际上需要在抚摸部分而不是填充部分上进行.即便如此,我似乎无法在任何宽度的路径上找到方法 - 仅在Bezier的1点宽路径上.
  • 甚至看不到部分沿路径移动对象:所有动画方法都沿着ENTIRE路径移动精灵.此外,这样做需要你找到最接近用户触摸的路径上的点,如果你曾经看过这个点涉及到惊人的复杂数学.
  • 我曾想过使用刚体占据除路径之外的所有空间,因此对象只能在路径中移动.然而,这需要定义弯曲的刚体,其中一些必须是凹的.死路.

我这太难了吗?它似乎并不复杂.我不需要一个完整的解决方案,只需要一种新的思考方式并朝着正确的方向前进.任何帮助将非常感激.

iphone bezier curve path ios

6
推荐指数
1
解决办法
1935
查看次数

R图,x轴和y轴接触

我的问题涉及为R中的出版物制作图表.我使用了如下的绘图函数:

plot(x=data$SL, y=data$BD, xlab = "SL (mm)", ylab = "BD (mm)", pch=data$pch)
Run Code Online (Sandbox Code Playgroud)

SL范围从51.7到73.7,BD从13.5到20.4.不幸的是我还不允许发布图片.

但是,想要摆脱我用"轴= F"的盒子.现在的问题是缺乏对轴功能的控制.我用了:

axis(side=1, lwd=3, xpd=TRUE, at=c(min(data$SL):max(data$SL)))
axis(side=2, lwd=3, xpd=TRUE, at=c(min(data$BD):max(data$BD)))
Run Code Online (Sandbox Code Playgroud)

问题是我无法设法让y轴和x轴在与框中的图中相同的点上聚集在一起.如何让x轴和y轴相互接触?

plot curve axis r smooth

6
推荐指数
2
解决办法
9314
查看次数

如何在R中平滑参数化的三维曲线?

我有参数三维曲线的数据:

    t        x       y       z
0.000    3.734   2.518  -0.134    
0.507    2.604   9.059   0.919
0.861    1.532  11.584  -0.248
1.314    1.015   1.886  -0.325
1.684    2.815   4.596   3.275
1.938    1.359   8.015   2.873
2.391    1.359   8.015   2.873
..............................
Run Code Online (Sandbox Code Playgroud)

我发现scatterplot3dPLOT3D格式真的很酷.但我需要一条平滑的三维曲线.

我如何在R中绘制它?

3d plot curve r curve-fitting

6
推荐指数
1
解决办法
2760
查看次数

为什么'曲线'与R中的'线'和'点'如此不同?

我想用频率数据拟合离散广义β分布(DGBD).

数据如下所示:

freq = c(1116, 2067, 137 ,  124, 643,  2042, 55  ,47186,  7504, 1488, 211,   1608,   
         3517 , 7  , 896  ,  378, 17 ,3098, 164977  ,  601 ,  196, 637, 149 , 44,2 ,  1801, 882   , 636,5184,  1851,  776 ,   343   , 851, 33  ,4011,   209,  715 , 
         937 , 20,   6922, 2028 , 23,  3045 , 16 , 334,  31 ,  2)

Rank = rank(-freq, ties.method = c("first") )
p = freq/sum(freq)
Run Code Online (Sandbox Code Playgroud)

获取日志表单

log.f …
Run Code Online (Sandbox Code Playgroud)

plot curve r lines points

6
推荐指数
1
解决办法
1096
查看次数

curve()出错:'expr'没有计算长度为'n'的对象

我有一个函数,在分子中有一个向量,在分母中有向量的总和.因此,每个组件是向量的一个组件除以一个取决于组件总和的函数.我想绘制一条曲线,表示第一个组件中的功能,固定其他组件.为什么这段代码不起作用?

y <- vector(length=2)
y0 <- c(1,2)
f <- function(y) y/(1+sum(y))
g <- function(x) f(c(x,y0[2]))[1]
curve(g, 0, 2)
Run Code Online (Sandbox Code Playgroud)

f和g都在数值处按预期进行评估,但曲线函数给出了误差:

Error in curve(g, 0, 2) : 
  'expr' did not evaluate to an object of length 'n'
Run Code Online (Sandbox Code Playgroud)

我试过没有成功的矢量化g.感谢任何帮助.

curve r function vector

6
推荐指数
1
解决办法
8832
查看次数

用matplotlib填充曲线下的区域

我有一个熊猫系列,

系列

这是图表:

功能

我想填充曲线下的区域。问题是调用

plt.fill(y)
Run Code Online (Sandbox Code Playgroud)

输出:

在此输入图像描述

正如在其他答案中看到的,这是因为我们需要向函数发送一个多边形,所以我们必须添加一个 (0,0) 点。(还有一个(lastPoint,0),但在这种情况下它是不必要的)。

然而,建议的解决方案是编写以下代码:

plt.fill([0]+[*range(0,len(y))],  [0]+pd.Series.tolist(y))
Run Code Online (Sandbox Code Playgroud)

我拒绝相信这是最好的解决方案。

代码很糟糕,根本不容易阅读,而且我正在丢失信息(x 轴上没有日期):

在此输入图像描述

此外,如果我同时调用绘图和填充(以使红线位于顶部),则会发生错误:

/usr/local/anaconda3/lib/python3.7/site-packages/matplotlib/dates.py in refresh(self)
   1446     def refresh(self):
   1447         'Refresh internal information based on current limits.'
-> 1448         dmin, dmax = self.viewlim_to_dt()
   1449         self._locator = self.get_locator(dmin, dmax)
   1450 

/usr/local/anaconda3/lib/python3.7/site-packages/matplotlib/dates.py in viewlim_to_dt(self)
   1197                              'often happens if you pass a non-datetime '
   1198                              'value to an axis that has datetime units'
-> 1199                              .format(vmin))
   1200         return num2date(vmin, self.tz), num2date(vmax, self.tz)
   1201 

ValueError: view limit minimum -36868.15 is …
Run Code Online (Sandbox Code Playgroud)

python curve matplotlib area fill

6
推荐指数
1
解决办法
9910
查看次数

如何在Flutter中制作弧形底部appBar?

自定义应用栏

如何appBar在我的应用程序中绘制自定义形状以使其看起来像图像?

curve appbar clip flutter

6
推荐指数
1
解决办法
9433
查看次数