All pastes #395067 Raw Edit

Mine

public text v1 · immutable
·published 2007-03-14 19:41 UTC
rendered paste body
function TForm1.ReadWindAngle : Integer;
var
  wPixel : word;
  bRed, bGreen : byte;
  fHighest, fLowest, fTotalMedian : single;
  fMedian: array[1..6] of double;
  fCurAngle, nRadius, z, nX, nY, f, c : integer;
begin
z:=0;
  fhighest:=0;
  flowest:=0;
  fTotalMedian:=0;
  fCurAngle:=0;
  for nRadius:=21 to PRED(27) do
    begin
    inc(z);
  for fCurAngle:=0 to PRED(360) do
    begin
      nX := Trunc(241 + (cos(DegToRad(fCurAngle)) * nRadius));     //old interface
      nY := Trunc(573 + (sin(DegToRad(fCurAngle)) * nRadius));     //old interface
      //nX := Trunc(400 + (cos(DegToRad(fCurAngle)) * nRadius));       //new interface
      //nY := Trunc(27 + (sin(DegToRad(fCurAngle)) * nRadius));        //new interface (use SinCos)
      Memo1.Text := IntToHex(wPixel,2);
      wPixel := form1.canvas.Pixels[nX, nY];
      bRed := (wPixel and $FF);
      bGreen := (wPixel shr 8) and $FF;
      Edit1.Text := IntToHex(bRed,2);
      Edit2.Text := IntToHex(bGreen,2);
       if (bRed > $17) and (bGreen < $8) then
      begin
    if fLowest <> 1 then
      begin
        fHighest := fCurAngle;
        fLowest := fCurAngle
      end else if ((fCurAngle - fLowest) < 27) then
        fHighest := fCurAngle;
      end;
    end;
  fMedian[z] := (fLowest + fHighest) / 2.00;
  fHighest := 0;
  fLowest := 0;
  f:=0;
  c:=0;
  end;
    for f:=0 to 6 do
      if fMedian[z] <> 0 then begin
        fTotalMedian := fTotalMedian + fMedian[f];
        inc(c);
      end;
    fTotalMedian := fTotalMedian / c;
  wa := FloatToStr(fTotalMedian);
end;