In Script-fu, vectors (arrays) can be created using the 'vector' keyword -- just as lists can be created with the 'list' keyword. Therefore, it is not necessary to 'vector-set!' or 'aset' elements one at a time when creating a vector.
(define (incand_bottom_array height length)
(vector 0 ;; x0
(/ (* height 90.66) 100) ;; y0
(/ (* length 7.16) 100) ;; x1
(/ (* height 87.33) 100) ;; y1
(/ (* length 26.33) 100) ;; x2
(/ (* height 74) 100) ;; y2
(/ (* length 39) 100) ;; etc...
(/ (* height 84.33) 100)
(/ (* length 48.33) 100)
(/ (* height 86.66) 100)
(/ (* length 59.16) 100)
(/ (* height 82.66) 100)
(/ (* length 71.5) 100)
(/ (* height 72.66) 100)
(/ (* length 89.83) 100)
(/ (* height 85.33) 100)
length
(/ (* height 89.33) 100)
length
height
0
height
0
(/ (* height 90.66) 100) ))
You should also be aware that 'length' is a standard procedure of Scheme/Script-fu and while there is nothing wrong with you reassigning the symbol to have a different local meaning (as in the above), if you ever have to make use of its standard meaning in your local procedure, you will have to rename your variable. It might be better to avoid this potential hazard by using a variable name such as 'width' instead.