日期:2014-05-17  浏览次数:20788 次

求助高手!一个电子印章生成算法的问题
各位大哥,小弟最近在做一个印章程序,能根据你输入的文字,生成一个印章图片,并可以对图片进行保存。现在的最关键的问题是输入的文字如何排列在印章上,希望能知道有关对文字进行旋转和排列的算法或计算方法。没有语言显示,主要是想知道相关的算法。希望各位大哥出手相助。

------解决方案--------------------
看看NTKO
画图,设置背景,drawstring写文字
------解决方案--------------------
画矩形图片 然后在矩形里面写字 用Graphics类
------解决方案--------------------
http://www.csharpwin.com/csharpspace/472.shtml
------解决方案--------------------
不知道楼主是不是要这种电子印章,刚才写了些代码实现了这样的效果,如果楼主需要这种类型的印章我再整理代码发上来。


------解决方案--------------------
引用:
不知道楼主是不是要这种电子印章,刚才写了些代码实现了这样的效果,如果楼主需要这种类型的印章我再整理代码发上来。



那些旋转的字我老对不齐,发个源码研究下呗。
------解决方案--------------------
引用:
不知道楼主是不是要这种电子印章,刚才写了些代码实现了这样的效果,如果楼主需要这种类型的印章我再整理代码发上来。



有了这玩意,就不用去找刻章的人了,办证容易多了。
------解决方案--------------------
引用:
Quote: 引用:

不知道楼主是不是要这种电子印章,刚才写了些代码实现了这样的效果,如果楼主需要这种类型的印章我再整理代码发上来。



那些旋转的字我老对不齐,发个源码研究下呗。


好的,我整理下先
------解决方案--------------------
这个方法就不优化了,楼主想优化就自己优化吧,这里只是实现功能,下面的函数能绘制出楼上的电子印章,参数为:
g:     绘图表面
text:  印章文字
center:印章中心点
radius:印章半径
angle: 印章文字分布角度

public void RenderSeal(Graphics g, string text, PointF center, float radius, float angle)
{
    float newAngle = (angle % 360 - 180) / 2 + 180;
    int times = text.Length;
    SizeF sf = SizeF.Empty;