标签: stroke

使用CGAffineTransform缩放上下文中的所有点时保留线宽

我有一个CGPath我想绘制的坐标系.这样做涉及将旧坐标系缩放到Context的坐标系上.为了这个目的,我使用CGContextConcatCTM()它确实转换所有点.但是,由于它是缩放操作,水平/垂直线宽变为.例如,在x方向上为10,但在y方向上为1,将导致垂直线的厚度是水平线的10倍.有没有办法保持翻译矩阵的易用性(例如CGAffineTransform),但不能同时缩放线宽,例如像CGPathApplyAffineTransformToPoints

干杯

MrMage

core-graphics cgcontext cgaffinetransform cgpath stroke

5
推荐指数
2
解决办法
1582
查看次数

Android多笔画框中的可绘制xml

我试图<shape>在android drawable xml 的元素中的矩形上实现有效的2笔画.深绿色外线和浅绿色内线,在其中心有渐变填充.我的代码目前看起来像这样:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">



<item>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle">

        <stroke android:width="3px" android:color="#477135" />
    </shape>

</item>
<item >
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle">
        <gradient android:startColor="#81c557" android:endColor="#539942"
            android:angle="270" />

        <stroke android:width="1px" android:color="#a8d78a" />
    </shape>
</item>
Run Code Online (Sandbox Code Playgroud)

我尝试将android:top ="3px"android:bottom ="3px"应用到第二个项目元素,但是当我添加右侧和左侧属性时,整个事物都不会渲染.注意,这都是在ListView中完成的

xml android shape drawable stroke

5
推荐指数
1
解决办法
4267
查看次数

HTML5 Canvas上的明确界限

有没有办法解开一条线?在我的画布上,我有一条不透明度为0.5的线条,宽度为20像素.现在我想让它更长,意味着从旧的那条画出另一条线.这样做时,旧线和新线之间的匹配点变得不那么透明(因为它们现在由两条线组成).所以我想要解开旧线,然后抚摸新线.

我该怎么做?

谢谢

html5 canvas line stroke

5
推荐指数
4
解决办法
1万
查看次数

为什么Graphics的draw方法不尊重笔画属性?

我想创建一个带圆角的自定义边框.

代码 -

import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Component;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Insets;
import java.awt.RenderingHints;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import javax.swing.border.AbstractBorder;

class JRoundedCornerBorder extends AbstractBorder 
{   
    private static final long serialVersionUID = 7644739936531926341L;
    private static final int THICKNESS = 5;

    JRoundedCornerBorder()
    {
        super();
    }

    @Override
    public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) 
    {
        Graphics2D g2 = (Graphics2D)g.create();

        g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
        if(c.hasFocus())
        {
            g2.setColor(Color.BLUE);
        }
        else
        {
            g2.setColor(Color.BLACK);
        } …
Run Code Online (Sandbox Code Playgroud)

java graphics swing java-2d stroke

5
推荐指数
2
解决办法
1970
查看次数

像Photoshop一样的iOS刷机硬度

如何获得像photoshop一样的刷光滑度(硬度)效果?

我的尝试:

CGContextRef context = UIGraphicsGetCurrentContext(); 
CGContextSaveGState(context);
CGContextSetLineCap(context, kCGLineCapRound);
CGContextSetLineWidth(context, 30);
CGContextSetStrokeColorWithColor(context, [UIColor colorWithRed:1.0f green:0.0f blue:0.0f alpha:0.5f].CGColor);
CGContextSetShadowWithColor(context, CGSizeMake(0, 0), 20.0f, [UIColor colorWithRed:1.0f green:0.0f blue:0.0f alpha:1.0f].CGColor);
CGContextAddPath(context, path);
CGContextStrokePath(context);
CGContextRestoreGState(context);
Run Code Online (Sandbox Code Playgroud)

我尝试调整alpha值和阴影模糊因子,但没有成功的结果.

有人有解决方案吗?任何帮助,将不胜感激.

core-graphics brush stroke ios

5
推荐指数
1
解决办法
2899
查看次数

HTML5 Canvas笔划没有消除锯齿

我只想在画布上用一个厚的抗锯齿笔画制作一个圆圈.

圆圈按预期绘制,但笔划的边缘非常锯齿.我一直在阅读Chrome强制抗锯齿,所以不知道该怎么做......

小提琴:http://jsfiddle.net/nipponese/hWsxw/

HTML

<div id="main">
    <canvas id="myCanvas" width="400" height="400" style="border: 1px solid #000"></canvas>
        <div id="counter" style="height: 100px; width: 100px; border: 1px solid #000">
     </div>
</div>
Run Code Online (Sandbox Code Playgroud)

JS + jQuery

<script>
    function calc(myVal) {
        var canvas = document.getElementById("myCanvas");
        var ctx = canvas.getContext("2d");
        var radius = 70;

        ctx.beginPath();
        ctx.arc(140, 140, 20, myVal * Math.PI, 0, true);
        ctx.lineWidth = 14;
        ctx.stroke();
    };
    $(document).ready(function() {
        var count = 0;
        var parsedCount;
        function go(){  
            if (count <= 200) {
                parsedCount = count*.01 …
Run Code Online (Sandbox Code Playgroud)

antialiasing stroke html5-canvas

5
推荐指数
1
解决办法
5303
查看次数

html5画布中的双线笔画

我想使用html5画布路径绘制一个具有双线边框的形状.默认笔划(context.stroke())具有单行类型的路径.我可以在原始形状内绘制一个类似的形状,以生成一个看起来像是用两条边框线制作的图形,但我想要一些通用的解决方案.有任何想法吗?

html5 canvas border path stroke

5
推荐指数
1
解决办法
2885
查看次数

cocos2d中非矩形CCNode的轮廓(笔划)

我需要动态创建这样的轮廓:

红色2px轮廓

不适用于CCSprite,而是适用于在一个CCNode中合并的多个动画CCSprit.我在考虑:

  1. 将CCNode的内容复制到纹理(如canvasBitmapData.draw(sourceDisplayObject)AS3中)
  2. 使用生成的纹理创建CCSprite
  3. 将精灵着色为轮廓颜色并将其缩放一点
  4. 将精灵放在节点中的其他精灵后面

我不知道如何执行第1步.也许在步骤3中,在纹理的不透明像素周围绘制" 真实笔划 "而不是色调比例更快?

cocos2d-iphone stroke ccsprite ccnode

5
推荐指数
1
解决办法
3014
查看次数

使用HTML5 Canvas + KineticJS绘制完美的圆弧

我目前正在尝试使用KineticJS画布框架绘制弧线.我遇到的问题是这些弧线并不像所需的那样"完美"圆形.

他们被抽出如下:

var redArc = new Kinetic.Shape({
    drawFunc: function (canvas) {
        var ctx = canvas.getContext();
        ctx.beginPath();
        ctx.arc(x, y, r, 0, Math.PI / 2, true);    // Arc of 270°
        canvas.fillStroke(this);
    },
    x: x,
    y: y,
    stroke: 'rgb(255,0,0)',
    strokeWidth: 20,
    offset: [x, y]
});
Run Code Online (Sandbox Code Playgroud)

我知道这可能是一个问题,因为没有在基于像素的介质上渲染近乎完美的圆而没有在笔划上使用抗锯齿

如果这个问题可以通过使用矢量图形渲染或者是否有替代解决方案来解决,那么我在徘徊?

我已经包含了一个JSFiddle来概述这个问题,这些圆圈围绕它们的轴旋转动画.当圆弧在旋转时看起来"摆动"时,这种效果更明显.

JSFiddle:http://jsfiddle.net/EHDFV/

javascript antialiasing stroke html5-canvas kineticjs

5
推荐指数
1
解决办法
2048
查看次数

如何绘制具有可变笔画宽度的路径

我的代码基本上来自这个例子(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)

android drawing paint width stroke

5
推荐指数
1
解决办法
7049
查看次数