我需要为我的LaTeX文档绘制一些图片,我发现手工制作的PostScript看起来很合适(我想以编程方式做事,需要数学函数等).我也试过TikZ,但这看起来过于复杂,难以使用.
但是,使用普通的标准PostScript有点痛苦,因为绘制形状实际上没有任何标准功能(例如甚至不是矩形).
是否有任何PostScript库包含常见形状的功能并使生活更轻松?在我看来这个问题应该是相当普遍的.
或者我应该跳过PostScript并转向一些优秀的系统?哪一个?
最近我一直在学习HTML5的东西,特别是画布.
我查看了许多用Flash编写的在线绘图应用程序(例如http : //www.sumopaint.com,http://www.onemotion.com/flash/sketch-paint/),它们看起来都包含了很棒的绘图效果.流畅的线条,模拟铅笔/画笔等.
我想知道的是 - 有没有办法在画布上获得这样的效果,以及如何?
我愿意花1个月的(空闲时间)编码工作来完成它,但我不确定它是否可行.
我想要绘制的是以下内容: 但是在箭头的中心加上一个加号而不是一个减号.
我想从白色底座形状中减去"减号".奇怪的是,对于减号可以正常工作,但是如果我绘制一个加号而不是它不再减去它,而是将它添加到底层路径.
减去减号的我的代码看起来像这样
Path base = new Path();
[... draw the arrow ]
Path subtract = new Path();
subtract.moveTo(-xBarWidth/2, -xBarHeight/2); // center the path
subtract.rLineTo(xBarWidth, 0);
subtract.rLineTo(0, xBarHeight);
subtract.rLineTo(-xBarWidth, 0);
subtract.rLineTo(0, -xBarHeight);
base.add(subtract);
[in paint() function: canvas.draw(base, paint)]
Run Code Online (Sandbox Code Playgroud)
加号的代码:
int halfBarWidth = xBarWidth/2;
subtract.moveTo(-halfBarWidth, -xBarHeight/2);
subtract.rLineTo(halfBarWidth, 0);
subtract.rLineTo(0, halfBarWidth);
subtract.rLineTo(xBarHeight, 0);
subtract.rLineTo(0, -halfBarWidth);
subtract.rLineTo(halfBarWidth, 0);
subtract.rLineTo(0, -xBarHeight);
subtract.rLineTo(-halfBarWidth, 0);
subtract.rLineTo(0, -halfBarWidth);
subtract.rLineTo(-xBarHeight, 0);
subtract.rLineTo(0, halfBarWidth);
subtract.rLineTo(-halfBarWidth, 0);
subtract.rLineTo(0, xBarHeight);
Run Code Online (Sandbox Code Playgroud)
但是,现在它在箭头顶部绘制了白色加号.我试过subtract.setFillType(FillType.INVERSE_EVEN_ODD)
但它没有改变任何东西.
不幸的是我在api找不到任何帮助.
我想在屏幕上的所有窗口上绘制一些基元.我在C中找到了一些代码并尝试将其移植到使用python的xlib:
from Xlib.display import Display
from Xlib import X
from Xlib import protocol
display = Display(':0')
root = display.screen().root
gc = root.create_gc()
root.fill_rectangle(gc, 100, 100, 500, 500)
Run Code Online (Sandbox Code Playgroud)
但屏幕上没有任何内容(但是,根窗口已分配:在工作后抓取键盘).怎么做到这一点?
我的代码基本上来自这个例子(http://corner.squareup.com/2010/07/smooth-signatures.html)和Google API(FingerPaint),但现在我想使用该类VelocityTracker
来改变笔画宽度,具体取决于在我的手指速度.
我以为我可以将路径分成更小的部分,但我没有找到任何例子.还有第二篇文章(http://corner.squareup.com/2012/07/smoother-signatures.html),但我没有特定的bezier曲线类,也没有收集所有的点,ArrayList
所以他们的例子用于调整笔划宽度不是很有帮助.
有谁知道如何处理这个?两周前我开始学习代码,所以我对这些东西都很新.
编辑:我试图实现我的MotionEvents的速度,我使用LogCat来跟踪运行应用程序时的当前速度.它确实有效,但当我尝试使用速度作为mPaint.setStrokeWidth参数的一部分时,我没有得到我真正想要的东西.我从画布上绘制的路径的宽度从我开始绘制线条的那一刻起一直在变化,直到我将手指向上移动.这就是为什么我想将路径分成更小的部分,因为现在只有最后一个跟踪的速度会影响strokeWidth.
public class SignatureView extends View {
private static final String TAG = SignatureView.class.getSimpleName();
private static final float STROKE_WIDTH = 10;
private static final float HALF_STROKE_WIDTH = STROKE_WIDTH / 2;
private final double TOUCH_TOLERANCE = 5;
private int h = getResources().getDisplayMetrics().heightPixels;
private int w = getResources().getDisplayMetrics().widthPixels;
private Path mPath = new Path();
private Paint mPaint = new Paint();
private Paint mBitmapPaint = new Paint(Paint.DITHER_FLAG);
private Bitmap mBitmap = …
Run Code Online (Sandbox Code Playgroud) 如何在无边框表格上绘制平滑的模糊玻璃效果?我已尝试使用C和GDI +页面在Image Processing for Dummies上列出的代码,但我确定这不是我应该使用的.没有多少玩弄它已经产生了我所追求的任何结果.
这基本上就是我想要实现的目标:
因此,我是一名新的iOS开发人员,致力于iOS绘图应用程序,该应用程序使用x/y坐标和时间戳来回放用户草图.为了绘制简单的笔事件,我有一个UIView作为绘图视图,我使用CAShapeLayers绘制到视图,如下所示:
if (index == 0){
CGPathMoveToPoint(path, NULL, point.x, point.y);
} else {
CGPathAddLineToPoint(path, NULL, point.x, point.y);
}
……
CAShapeLayer *permLayer = [CAShapeLayer layer];
[permLayer setFrame:CGRectMake(0, 0, 1024, 640)];
[permLayer setFillColor:[[UIColor clearColor] CGColor]];
[permLayer setStrokeColor:currentColor.CGColor];
[permLayer setLineWidth:[event[@"strokeWeight"] floatValue]];
[permLayer setLineJoin:kCALineJoinRound];
[permLayer setLineCap:kCALineCapRound];
……
[[self layer] addSublayer:permLayer];
……
Run Code Online (Sandbox Code Playgroud)
一切都很好,看起来很好:
现在我想做的是有一个看似如下的擦除事件:
我尝试使用另一个CAShapeLayer作为掩码并将擦除事件的CGPath绘制到该掩码来完成此操作.然而,我最终得到的是:
......这与我想要的完全相反.我想我需要以某种方式获得由擦除事件的CGPath创建的CAShapeLayer的反向掩码?我不确定接近这个的正确方法是没有我不熟悉的大量数学.
另一个需要注意的是,这个动画与CADisplayLink相关联,因此这些绘制动画经常被刷新,性能很重要.我之前尝试绘制UIImages而不是CAShapeLayers并使用kCGBlendModeClear来实现擦除效果,但性能却遭受了极大的损失.感谢您的任何建议或见解!
我正在开发一个游戏,我需要创建一个巨大的"世界",火箭飞过它.在这个世界上,我必须以编程方式生成各种简单的背景元素.需要记录路径,所以我不能使用视差效果来给出运动的感觉.
当我使用SKShapeNode和SKLabelNode对象创建背景元素时,我的性能非常糟糕,因为我实际上必须添加数千个这样的节点.
有没有办法直接在sprite对象上绘制文本和线条?
题
该类DocumentFormat.OpenXml.Drawing.BlipExtension
有一个名为的属性Uri
.在众多例子中,我看到了28A0092B-C50C-407e-A947-70E740481C1C
使用的价值; 但从来没有发现这个值是什么/它是否重要,或者它是否是任意的,只是因为人们从现有的示例代码中复制粘贴而流行.
有谁知道这个GUID值的相关性是什么?
背景
我一直在修复遗留应用程序中的一个错误,并且一直在重构以删除一些代码的spaghettification.
在这样做的同时,我发现了一些硬编码的值; 插入到文档中的任何图像都会给出名称Koala.jpg
.该系统与考拉无关; 意味着该人只是简单地复制粘贴了一些代码而没有考虑这些值的上下文/含义.另一个硬编码值是BlipExtension的Uri : 28A0092B-C50C-407e-A947-70E740481C1C
. 我想确定这个GUID是否有任何特殊含义,或者它是否只是一个唯一值.谷歌搜索显示了许多示例代码中使用的这个值,但到目前为止,我还没有找到它的解释.以下示例结果.
查看BlipExtension文档并未提供有关如何找出此GUID /此引用的架构的详细信息. https://msdn.microsoft.com/en-us/library/documentformat.openxml.drawing.blipextension.uri(v=office.14).aspx