我正在开发绘画应用程序.我试过用CoreGraphics/Quartz 2D和绘图曲线算法做的很慢.所以我们决定改用OpenGL ES.我从未有过任何OpenGL经验,所以我从苹果中找到了glPaint示例并开始玩它.
我改变了erase方法做白色背景.我如何坚持刷和混合.在示例中,Apple使用"白色黑色"纹理作为画笔(首先在下面的图片中).但它对我不起作用(我使用不同的混合模式).所以我决定使用不同的画笔,但我找不到合适的方法.我在stackoverflow上发现了一些问题,但是所有问题都没有得到答复.这是一张照片(来自另一个问题,感谢Kevin Beimers).
结果http://www.straandlooper.com/GLPaint.png
所以问题是如何在图片中实现类似"所需"的笔画.如何将2个笔画更接近现实生活体验(蓝色比黄色=深绿色).
谢谢.
刷子的当前代码(从glPaint修改的位)(来自initWithFrame方法:
// Make sure the image exists
if(brushImage) {
// Allocate memory needed for the bitmap context
brushData = (GLubyte *) calloc(width * height * 4, sizeof(GLubyte));
// Use the bitmatp creation function provided by the Core Graphics framework.
brushContext = CGBitmapContextCreate(brushData, width, width, 8, width * 4, CGImageGetColorSpace(brushImage), kCGImageAlphaPremultipliedLast);
// After you create the context, you can draw the image to the context.
CGContextDrawImage(brushContext, CGRectMake(0.0, …Run Code Online (Sandbox Code Playgroud) 我有下面的代码,允许我在用户第一次将鼠标悬停在元素上然后删除事件时执行某些操作.
它在W3C事件模型浏览器中运行良好,但在IE6-8中不断抛出错误.我从另一个问题得到了代码,并相信它会处理IE.有谁看到我做错了什么?
<script type="text/javascript">
function setMouseEvent() {
//Tel: 01 8279 400
event = addEvent(document.getElementById('contactButton'), 'mouseover', changeText);
}
function changeText() {
alert("worked!");
removeEvent(document.getElementById('contactButton'), 'mouseover', changeText);
}
function addEvent(obj, type, fn) {
if (typeof obj.addEventListener != undefined) {
obj.addEventListener(type, fn, false);
}
else if (typeof obj.attachEvent != undefined) {
obj.attachEvent("on" + type, fn);
}
}
function removeEvent(obj, type, fn) {
if (typeof obj.addEventListener != undefined) {
obj.removeEventListener(type, fn, false);
}
else if (typeof obj.attachEvent != undefined) {
obj.detachEvent("on" + type, obj[type + …Run Code Online (Sandbox Code Playgroud) 我正在创建一个Windows应用程序,用户从组合框中选择一个类型.根据选择,使用反射我想创建相应类型的实例并调用其方法之一.我想要创建的类型也在与sperate类相同的Windows应用程序中定义.但是我收到标题中提到的错误.继承我的代码.
Form1代码:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
cbLogs.SelectedIndex = 0;
}
private void btnProcess_Click(object sender, EventArgs e)
{
lblMessage.Text = "";
lblResult.Text = "";
if (cbLogs.SelectedIndex <= 0)
{
lblMessage.Text = "Please select Log to be processed";
cbLogs.Focus();
return;
}
Assembly currAss = System.Reflection.Assembly.GetExecutingAssembly();
//I get above error on below line.
object obj = Activator.CreateInstance(currAss.FullName,"SustainabilityXpress ");
Type type = obj.GetType();
object result = type.InvokeMember("process",
BindingFlags.Default | BindingFlags.InvokeMethod,
null, obj, null);
lblResult.Text = result.ToString();
} …Run Code Online (Sandbox Code Playgroud) 当我构建我的项目并且主窗体是开放的(相当大,各种类型的几十个组件)时,构建过程在项目文件夹中创建一个名为"c"的文件.
该文件为空.
如果我在IDE中关闭主窗体,则构建过程不会创建该文件.
我怎样才能找出导致这种情况的原因以及为什么编译器会在构建开始时关注哪些文件在IDE中打开?
我正在处理树库,并且所需功能的一部分是能够在节点中搜索与模式匹配的子节点.
"模式"是规范(或标准),其规定了结构,以及要匹配的子树中的节点的属性.
例如,假设树代表关于特定鸟类的数据.进一步假设这种树的节点具有以下属性:
鉴于父节点,我想用简单的英语发出搜索:
"把我这只鸟的后代的所有雄性鸟取出来,住在XXX城市,体重> 100g.发现任何这样的鸟也应该至少有2个兄弟和1个妹妹,并且本身必须至少有一个孩子"
<note>
只是为了澄清,我不希望能够像上面所做的那样使用普通英语进行查询.我只使用"普通英语查询"来说明我想在树上执行的匹配类型.我完全希望在实践中使用符号进行匹配(而不是纯文本).
</ note>
我想可能使用正则表达式模式匹配来匹配树.一种方法是使用每个节点的字符串表示,所以我可以使用普通的正则表达式 - 但这可能是非常低效的,因为会有很多重复的数据 - 即子节点的字符串表示将是超集他们的父表示,将是他们的父母代表字符串的超集,依此类推,递归地,在树上 - 这对于事件适度大小的树很容易变得笨重 - 必须有更好的方法.
是否有人知道一种算法,它允许我根据模式选择节点中的节点(子树)?
虽然我要求使用通用算法,但我在Python中实现了这一点.任何进一步说明这种算法的片段(如果确实可以写一个),将是非常有用的.
如果我有一个问答系统,并且我想添加一个标签功能,就每个问题我应该有一些标签,用逗号分隔(就像Stackoverflow一样):
我应该在表单中使用什么,以便用逗号分隔的标签保存在数据库中,每个标签都注册?(便于搜索)
谢谢
我有一个存储过程,为'ContentMarginExVat'抛出'无效列名'错误;
SELECT CategoryTitle, ContentID, ContentTitle, ContentMarginExVat, ContentWeight
FROM VWProductsCurrent
WHERE ContentID = @ContentID
Run Code Online (Sandbox Code Playgroud)
我检查了VWProductsCurrents和获取数据的关联表,这两个都选择了ContentMarginExVat,但SQL Server Management Studio 2008仍然说该列的名称无效.
想知道是否有人可能就此提出任何建议?
谢谢.
我有一个方法:
- (CGPoint) calculateVectorBetweenThisPoint:(CGPoint)firstPoint andThisPoint:(CGPoint)secondPoint
{
float xDif = firstPoint.x - secondPoint.x;
float yDif = firstPoint.y - secondPoint.y;
return CGPointMake(xDif, yDif);
}
Run Code Online (Sandbox Code Playgroud)
我尝试按如下方式调用它:
- (float) angleBetweenThisPoint:(CGPoint)firstPoint andThisPoint:(CGPoint)secondPoint
{
// COMPILE ERROR HERE: Invalid Initializer
CGPoint vector = [self calculateVectorBetweenThisPoint:firstPoint andThisPoint:secondPoint];
return atan2(vector.x, vector.y);
}
Run Code Online (Sandbox Code Playgroud)
但我得到一个编译错误,我尝试使用该方法:"无效的初始化程序".
我究竟做错了什么?
iphone ×2
objective-c ×2
.net ×1
algorithm ×1
c# ×1
database ×1
delphi ×1
delphi-2009 ×1
django ×1
forms ×1
ipad ×1
javascript ×1
oauth ×1
opengl-es ×1
pseudocode ×1
python ×1
reflection ×1
sql ×1
sql-server ×1
tags ×1
tree ×1
twitter ×1
xcode ×1