我试过在google和android中找到这个问题.还做了几次试验和错误,但无法得到这个问题.我正在学习Android的"Draw Nine Patch"图像.我知道的一个基本原则是,无论你处理什么图像都必须是.png格式(如果它已经在.9.png中,那么它将被工具忽略).然而,
我为提出这么多问题而道歉,但在Android在线文档中他们没有为新手解释得很好.如果有人可以回答这些问题,它将成为所有搜索此论坛的初学者的准备参考.
我已经查看了这个问题,但答案对我来说非常大:
是否有任何.NET方法可以知道由两个点定义的直线是否与矩形相交?
public bool Intersects(Point a, Point b, Rectangle r)
{
// return true if the line intersects the rectangle
// false otherwise
}
Run Code Online (Sandbox Code Playgroud)
提前致谢.
我画了以下网格:
使用以下两种方法绘制上述网格,一种用于计算网格,另一种用于计算每个单元格的中心:
//makes grid in picture box
private void drawGrid(int numOfCells, int cellSize, Graphics gr)
{
Pen p = new Pen(Color.SteelBlue);
for (int i = 0; i < Math.Sqrt(numOfCells) + 1; i++)
{
// Vertical
gr.DrawLine(p, i * cellSize + 300, 200, i * cellSize + 300, 700);
// Horizontal
gr.DrawLine(p, 300, i * cellSize+200, 800, i * cellSize+200);
}
this.topology.SendToBack();
}
//draw the center point for each cell of the grid
private void drawCenters(Graphics gr)
{
for (int j …
Run Code Online (Sandbox Code Playgroud) 我正在协助有人使用用户界面代码来可视化数学图像分析.在此过程中,我们将2D形状的一部分分割为三角形,并在UI上填充其中一些三角形.
我们正在寻找一种填充算法,该算法可以保证如果两个三角形共享一条边(具体来说,如果三角形的任意两个顶点相同),那么无论绘制顺序和锯齿是什么,线上都不会有空白的未拉伸像素两者之间.(如果某些像素被绘制两次,那就没问题.)在任意缩放下,结果应该看起来不错.某些三角形可能是非常薄的细长条,宽度低至1像素.
理想情况下,它也应该是一个合理有效的填充算法!
在三角形渲染中不会使用消除锯齿,因为最终图像需要为1位深度.
上下文是图像识别应用程序,因此所有顶点坐标都精确到一个像素.
我需要一个非常容易使用的绘图c或c ++库.这意味着我不需要在其中放置按钮,框架或其他任何东西,但我只需要在图形窗口上绘制点,圆,线.那可能吗?
我一直在研究一个小应用程序,我一直在使用DirectX/3D在屏幕上绘制纹理(所有二维元素).我发现,API很容易使用,并且使用OOP原则进行合并,但是我不禁觉得在这个小的东西上使用DirectX是疯狂的过度杀戮.
不过,我似乎无法就一个好的选择找到共识.有什么建议?
编辑:本机alpha混合和PNG文件支持是必要的.
Jengerer拥有很多先发制人的爱
填充图案由两种颜色组成:一种由BackgroundColor定义,用于填充背景,另一种用于在ForegroundColor属性定义的背景上形成图案的线条.所述HatchStyle属性定义了刷子具有什么类型的图案,并且可以是从HatchStyle枚举的任何值.HatchStyle枚举中有五十多个元素.
下图显示了一个填充水平影线图案的椭圆.
就像Color类中定义的颜色一样,我想要一个HatchStyle中定义的所有样式的图形列表,但在MSDN中找不到.你知道这样的概述吗?
我有一个小绘图应用程序,并希望使用"复杂"形状作为画笔,即一个明星.使用简单的画笔绘制已经可以使用此代码:
remotePath.reset();
remotePath.moveTo(start_x, start_y);
float dx = Math.abs(end_x - start_x);
float dy = Math.abs(end_y - start_y);
if (dx >= TOUCH_TOLERANCE || dy >= TOUCH_TOLERANCE) {
remotePath.quadTo(start_x, start_y, (end_x + start_x) / 2, (end_y + start_y) / 2);
}
remotePath.lineTo(end_x, end_y);
// commit the path to our offscreen
mCanvas.drawPath(remotePath, remotePaint);
// kill this so we don't double draw
remotePath.reset();
invalidate();
Run Code Online (Sandbox Code Playgroud)
我基本上想要使用这个位图相同的功能:
Bitmap myBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.brush_star);
Run Code Online (Sandbox Code Playgroud)
我的解决方案目前正在使用一个点(坐标)列表来绘制位图.该解决方案的问题在于它仅在给定点处绘制位图,导致每个绘制的位图之间存在间隙.我宁愿想要画一条平滑的线,同时用简单的画笔绘制,两者之间没有任何间隙.
位图绘制的当前代码:
protected void onDraw(Canvas canvas) {
// Make canvas white
canvas.drawColor(Color.WHITE);
// Paintable area …
Run Code Online (Sandbox Code Playgroud) 我在为Android编程时非常新.我的应用程序是来自开发者android网站上的api demos的示例应用程序.当我更改该样本绘图中的参数时,它会变大.该绘图需要在滚动视图中显示(不需要缩小以适应屏幕).这是我使用的代码:
DrawPoints.java
public class DrawPoints extends myActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.routes);
}
public static class SampleView extends View {
private Paint mPaint = new Paint();
private float[] mPts;
/*here comes declaration of parametars
private void buildPoints() {
/*here comes some coding*/
}
}
public SampleView(Context context, AttributeSet attributeset) {
super(context, attributeSet);
buildPoints();
}
@Override
protected void onDraw(Canvas canvas) {
Paint paint = mPaint;
//here also comes code
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是xml代码:
routes.xml
<?xml version="1.0" …
Run Code Online (Sandbox Code Playgroud) 我正在尝试在.NET中调整图像大小,但在调整大小的图像周围会出现一个模糊的黑色边框.我发现了一篇帖子http://social.msdn.microsoft.com/forums/en-US/csharpgeneral/thread/cf765094-c8c1-4991-a1f3-cecdbd07ee15/,其中有人说目标矩形大于画布工作,但这对我不起作用.它的顶部和左边界都是riid,但右边和底部仍然存在,并且是一个完整的1px厚的黑色.
我错过了什么吗?我的代码如下.
Image image = ... // this is a valid image loaded from the source
Rectangle srcRectangle = new Rectangle(0,0,width, height);
Size croppedFullSize = new Size(width+3,height+3);
Rectangle destRect = new Rectangle(new Point(-1,-1), croppedFullSize);
using(Bitmap newImage = new Bitmap(croppedFullSize.Width, croppedFullSize.Height, format))
using(Graphics Canvas = Graphics.FromImage(newImage)) {
Canvas.SmoothingMode = SmoothingMode.AntiAlias;
Canvas.InterpolationMode = InterpolationMode.HighQualityBicubic;
Canvas.PixelOffsetMode = PixelOffsetMode.HighQuality;
Canvas.FillRectangle(Brushes.Transparent, destRect);
Canvas.DrawImage(image, destRect, srcRectangle, GraphicsUnit.Pixel);
newImage.Save(filename, image.RawFormat);
}
Run Code Online (Sandbox Code Playgroud)