Jump to content

toe_head2001

Administrator
  • Posts

    5,013
  • Joined

  • Last visited

  • Days Won

    153

Posts posted by toe_head2001

  1. Did not.

     

    I also tried compiling the source only to find the errors MJW reported. I did get it working with selection.Right -1 that Red used but  I missed the continuation   && CurrentPixel.A==0&&src[x,y-p].A==255) which simply didn't appear in the code I copied & pasted from the forum. The formatting was awry so it may have been a forum software issue.

    It worked when I made my comment about using CodeLab. You must have copied it after you started your edit.

    While I there's no archive from yesterday, you can see the script in the post was fine until it was edited.

    https://web.archive.org/web/20160320182657/http://forums.getpaint.net/index.php?showtopic=7644

  2. I want to, but is the downloadlink still valid? Where can I get it?

     

    You have two options.

    @pyjo provided the source code on that page. You can Copy & Paste it into CodeLab.

    or you can download it from archive.org https://web.archive.org/web/20130309145847/http://pgciarlo.interfree.it/Plugins/BasicAntialias11.zip

     

     

    The Basic Antialias plugin won't solve your issue though.

  3. Here you go. The new code I added is at the bottom of the script.

     

    Spoiler

     

    
    // Name: AC Phasor Diagram
    // Submenu: Render
    // Author:
    // Title:
    // Version: 1.0
    // Desc:
    // Keywords:
    // URL:
    // Help:
    
    #region UICode
    DoubleSliderControl Amount1 = 0.8; // [0.1,0.8] Voltage circle diameter
    DoubleSliderControl Amount2 = 0.7; // [0.1,0.8] Current circle diameter
    IntSliderControl Amount3 = 3; // [1,10] Circle thickness
    IntSliderControl Amount4 = 3; // [1,10] Voltage phasor thickness
    IntSliderControl Amount5 = 3; // [1,10] Current phasor thickness
    IntSliderControl Amount6 = -30; // [-360,360] Rotating voltage phasor
    IntSliderControl Amount7 = -5; // [-360,360] Rotating current phasor
    CheckboxControl Amount8 = false; // [0,1] Change the sequence
    #endregion
    
    void Render(Surface dst, Surface src, Rectangle rect)
    {
        Rectangle selection = EnvironmentParameters.GetSelection(src.Bounds).GetBoundsInt();
       
        float centerX = ((selection.Right - selection.Left) / 2f) + selection.Left;
        float centerY = ((selection.Bottom - selection.Top) / 2f) + selection.Top;
        float diameterU = (float)Amount1 * Math.Min(selection.Width - 4, selection.Height - 4);
        float diameterI = (float)Amount2 * Math.Min(selection.Width - 4, selection.Height - 4);
        float radiusU = diameterU / 2f;
        float offsetXU = centerX - radiusU;
        float offsetYU = centerY - radiusU;
        float radiusI = diameterI / 2f;
        float offsetXI = centerX - radiusI;
        float offsetYI = centerY - radiusI;
        float startU = (float)(Amount6)-90; // 0 grade = 90 - 90 Ufazor 'R'
        float startI = (float)(Amount7)-90; // 0 grade = 90 - 90 Ifazor 'R'
        float sweep = 360f / 3; // 120 de grade
        bool sequence = Amount8;
    
        dst.CopySurface(src, rect.Location, rect);
    
        using (RenderArgs ra = new RenderArgs(dst))
        {
            Graphics cerc = ra.Graphics;
            cerc.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
            cerc.Clip = new Region(rect);
    
            using (Pen cercPen = new Pen(ColorBgra.Black))
            {
    
    // Desenează Cerc Fazori Curenti
                cercPen.Color = ColorBgra.AntiqueWhite; // Culoare cerc curenti
                cercPen.Width = Amount3; // Grosime Cerc
                cercPen.DashStyle = DashStyle.Solid; // Linie Cerc
                cerc.DrawEllipse(cercPen, offsetXI, offsetYI, diameterI, diameterI);
              
    // ******* // Fazor curent 'S'
                cercPen.Width = Amount5; // Grosime Fazori Curenti
                cercPen.DashStyle = DashStyle.Dash; // Linie fazor curent
                cercPen.Color = (ColorBgra.Orange); // Culoare Fazor 'S'
                {
                    if (!sequence)
                    {
                    startI = startI + 120;
                    }
                    float angleI = startI + sweep;
                    double radianI = Math.PI / 180 * angleI;
                    float endX = (float)(radiusI * Math.Sin(radianI));
                    float helperAngleI = 90 - angleI;
                    double helperRadianI = Math.PI / 180 * helperAngleI;
                    float endY = (float)(radiusI * Math.Sin(helperRadianI));
                    cerc.DrawLine(cercPen, centerX, centerY, centerX - endX, centerY - endY);
                }
    // ******* // Fazor curent 'T'
                cercPen.DashStyle = DashStyle.Dash; // Linie fazor curent
                cercPen.Color = (ColorBgra.Blue); // Culoare Fazor 'T'
                {
                    if (!sequence)
                    {
                    startI = startI + 120;
                    }
                    float angleI = startI + sweep * 2;
                    double radianI = Math.PI / 180 * angleI;
                    float endX = (float)(radiusI * Math.Sin(radianI));
                    float helperAngleI = 90 - angleI;
                    double helperRadianI = Math.PI / 180 * helperAngleI;
                    float endY = (float)(radiusI * Math.Sin(helperRadianI));
                    cerc.DrawLine(cercPen, centerX, centerY, centerX - endX, centerY - endY);
                }
    // ******* // Fazor curent 'R'          
               cercPen.DashStyle = DashStyle.Dash; // Linie fazor curent
               cercPen.Color = (ColorBgra.Red); // Culoare Fazor 'R'
                {
                     if (!sequence)
                    {
                    startI = startI + 120;
                    }
                    float angleI = startI + sweep * 3;
                    double radianI = Math.PI / 180 * angleI;
                    float endX = (float)(radiusI * Math.Sin(radianI));
                    float helperAngleI = 90 - angleI;
                    double helperRadianI = Math.PI / 180 * helperAngleI;
                    float endY = (float)(radiusI * Math.Sin(helperRadianI));
                    cerc.DrawLine(cercPen, centerX, centerY, centerX - endX, centerY - endY);  
                }       
    // Desenează Cerc Fazori Tensiuni
                cercPen.Color = ColorBgra.LightGray; // Culoare cerc tensiuni
                cercPen.Width = Amount3; // Grosime Cerc
                cercPen.DashStyle = DashStyle.Solid; // Linie Cerc
                cerc.DrawEllipse(cercPen, offsetXU, offsetYU, diameterU, diameterU);
               
    // Desenează Fazori
    // ******* // Fazor tensiune 'S'
                cercPen.Width = Amount4; // Grosime Fazori Tensiune
                cercPen.DashStyle = DashStyle.Solid; // Linie fazor tensiune
                cercPen.Color = (ColorBgra.Orange); // Culoare Fazor 'S'
                {
                    if (!sequence)
                    {
                    startU = startU + 120;
                    }
                    float angleU = startU + sweep;
                    double radianU = Math.PI / 180 * angleU;
                    float endX = (float)(radiusU * Math.Sin(radianU));
                    float helperAngleU = 90 - angleU;
                    double helperRadianU = Math.PI / 180 * helperAngleU;
                    float endY = (float)(radiusU * Math.Sin(helperRadianU));
              
                    cerc.DrawLine(cercPen, centerX, centerY, centerX - endX, centerY - endY);
                }
    // ******* // Fazor tensiune 'T'
                cercPen.DashStyle = DashStyle.Solid; // Linie fazor tensiune
                cercPen.Color = (ColorBgra.Blue); // Culoare Fazor 'T'
                {
                    if (!sequence)
                    {
                    startU = startU + 120;
                    }
                    float angleU = startU + sweep * 2;
                    double radianU = Math.PI / 180 * angleU;
                    float endX = (float)(radiusU * Math.Sin(radianU));
                    float helperAngleU = 90 - angleU;
                    double helperRadianU = Math.PI / 180 * helperAngleU;
                    float endY = (float)(radiusU * Math.Sin(helperRadianU));
                    cerc.DrawLine(cercPen, centerX, centerY, centerX - endX, centerY - endY);
                    }
    
    // ******* // Fazor tensiune 'R'
                cercPen.DashStyle = DashStyle.Solid; // Linie fazor tensiune
                cercPen.Color = (ColorBgra.Red); // Culoare Fazor 'R'
                {
                     if (!sequence)
                    {
                    startU = startU + 120;
                    }
                    float angleU = startU + sweep * 3;
                    double radianU = Math.PI / 180 * angleU;
                    float endX = (float)(radiusU * Math.Sin(radianU));
                    float helperAngleU = 90 - angleU;
                    double helperRadianU = Math.PI / 180 * helperAngleU;
                    float endY = (float)(radiusU * Math.Sin(helperRadianU));
                    cerc.DrawLine(cercPen, centerX, centerY, centerX - endX, centerY - endY);
                    }
            }
           
            StringFormat format = new StringFormat();
            format.Alignment = StringAlignment.Center;
            format.LineAlignment = StringAlignment.Center;
            using (SolidBrush textBrush = new SolidBrush(Color.Black))
            using (Font textFont = new Font("Arial", 16, FontStyle.Bold))
            {
                for (int fazor = 1; fazor < 4; fazor++)
                {
                    float angle = startU + sweep * fazor;
                    double radian = Math.PI / 180 * angle;
                    float endX = (float)((radiusU + 20) * Math.Sin(radian));
                    float helperAngle = 90 - angle;
                    double helperRadian = Math.PI / 180 * helperAngle;
                    float endY = (float)((radiusU + 20) * Math.Sin(helperRadian));
                   
                    switch (fazor)
                    {
                        case 1:
                            textBrush.Color = Color.Blue;
                            break;
                        case 2:
                            textBrush.Color = Color.Orange;
                            break;
                        case 3:
                            textBrush.Color = Color.Red;
                            break;
                    }
                    cerc.DrawString(fazor.ToString() + "V", textFont, textBrush, centerX - endX, centerY - endY, format);
                }
            }
         }
    }

     

    • Upvote 2
  4. Some important plugins are still not showing up for me despite unblocking them. Curves+, Vibrance and Random Shape Fill are still not showing up and if I unblock them, their DLLs somehow need to be re-unblocked over and over as if unblocking them cannot be persistent. Any help with this? These are very important effects to me.

    Make sure the both Effects folder and the dll file are not set to Read-only.

  5. Since this plugin breaks/crashes in the upcoming paint.net v4.0.10 release, I've converted it to a standard IndirectUI plugin. (DataDink appears to be on a hiatus). No other changes were made.

     

    BlendSeams.zip

     

    See details here: http://forums.getpaint.net/index.php?/topic/107032-tile/#comment-511100

     

    EDIT: This has been added to first post at the top of the page.

    • Like 1
    • Upvote 1
  6. Ok, It is working. But I need more help again. I made first the blue grid 3x6 and now I need to fraction each cell into smaller grids (3x6 grids again) as the green one. However, when I select a cell and use the script I get the red ones.  Could you make it work with selections as well? I hope I'm not asking too much and over-complicate the script. THANKS.

    It was supposed to work on selections, but I forget to test that. ;)

    I've fixed it; it was a simple change. The updated script is in the original post.

  7. Legal? Not here in the USA, as our copyright law includes provisions in EULAs. :( (Yes, copyright law can be extended just by adding provision in a EULA. How disgusting is that?)

     

    If you purchased a CS2 product and are having activation issues, you can download replacement media from this page.

    ...

    Only customers who legitimately purchased CS2 or Acrobat 7 and need to maintain their current use of these products may use the serial numbers provided during the download.

  8. On 6/24/2016 at 3:45 AM, sophie said:

    Thank you, but how do I place it in the effects folder?

    If you want it permanently in the Effects menu, CodeLab can create a dll file for you. Once you've created the dll file, place it in the effects folder just like any other plugin.

    http://boltbait.com/pdn/codelab/help/buildingdll.php

     

    If a script is short and simple, I like to keep it as script. Keeps the Effects menu tidy. But maybe that's just me. Create a dll if you like.

    I like my scripts folders with my nice collection.  :D 

    • Upvote 1
  9. Here's the CodeLab script.

    Hidden Content: CodeLab

    // Name: Hor x Ver Cells
    // Submenu: Render
    // Author: toe_head2001
    // Title:
    // Version: 0.9
    // Desc:
    // Keywords:
    // URL:
    // Help:
    #region UICode
    IntSliderControl Amount1 = 5; // [2,100] Line Thickness
    IntSliderControl Amount2 = 8; // [1,100] Horizontal Cells
    IntSliderControl Amount3 = 3; // [1,100] Vertical Cells
    #endregion
    
    void Render(Surface dst, Surface src, Rectangle rect)
    {
        Rectangle selection = EnvironmentParameters.GetSelection(src.Bounds).GetBoundsInt();
        float horLoops = Amount2;
        float verLoops = Amount3;
        float horCellSize = (selection.Width - Amount1) / horLoops;
        float verCellSize = (selection.Height - Amount1) / verLoops;
    
        dst.CopySurface(src, rect.Location, rect);
    
        using (RenderArgs ra = new RenderArgs(dst))
        {
            Graphics plane = ra.Graphics;
            plane.Clip = new Region(rect);
            using (Pen planePen = new Pen(EnvironmentParameters.PrimaryColor, Amount1))
            {
                for (int i = 1; i < horLoops; i++)
                {
                    plane.DrawLine(planePen, selection.Left + horCellSize * i + Amount1 / 2f, selection.Top, selection.Left + horCellSize * i + Amount1 / 2f, selection.Bottom);
                }
                
                for (int i = 1; i < verLoops; i++)
                {
                    plane.DrawLine(planePen, selection.Left, selection.Top + verCellSize * i + Amount1 / 2f, selection.Right, selection.Top + verCellSize * i + Amount1 / 2f);
                }
               
                planePen.Alignment = PenAlignment.Inset;
                plane.DrawRectangle(planePen, selection);
            }
        }
    }
    

     

    It works as you've described.

    cells.png

    • Upvote 8
×
×
  • Create New...