private void CalculateMultiReturn() { double mult = 2 * Math.PI / 800; double r, g, b; int index = 0; // Assign the parser variables ParserVariable x = new ParserVariable(0); ParserVariable y = new ParserVariable(0); muParser.Parser p = new muParser.Parser(muParser.Parser.EBaseType.tpDOUBLE); p.DefineOprt("%", new Parser.Fun2Delegate(mod), 2); p.SetExpr(m_parserImg[0].GetExpr() + "," + m_parserImg[1].GetExpr() + "," + m_parserImg[2].GetExpr()); p.DefineVar("x", x); p.DefineVar("y", y); for (int yi = 0; yi < pbImage.Height; ++yi) { y.Value = (yi - 400) * mult; for (int xi = 0; xi < pbImage.Width; ++xi) { x.Value = (xi - 400) * mult; int nNum; double[] ret = p.EvalMultiExpr(); r = GetColorComponent(ret[0]); g = GetColorComponent(ret[1]); b = GetColorComponent(ret[2]); m_data[index] = (byte)(r * 255); m_data[index + 1] = (byte)(g * 255); m_data[index + 2] = (byte)(b * 255); index += 3; } } }
private void Calc(String expr) { try { m_history.Add(expr); meHistory.SelectionColor = System.Drawing.Color.Blue; meHistory.AppendText(expr); meHistory.AppendText("\r\n"); meHistory.SelectionColor = System.Drawing.Color.Black; m_parser.SetDecSep(cbDec.Text.ToCharArray()[0]); // default: "." m_parser.SetArgSep(cbArg.Text.ToCharArray()[0]); // default: "," m_parser.SetExpr(expr); m_ans.Value = m_parser.Eval(); string result = Convert.ToString(m_ans.Value); meHistory.AppendText(String.Format("{0} = ", m_parser.GetExpr())); meHistory.AppendText(result); meHistory.AppendText("\r\n"); } catch (ParserException exc) { DumpException(exc); } }